You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中提取网站HTML中的纯文本?我已实现HTML代码获取

嘿,既然已经搞定HTML代码的获取了,那提取纯文本就不是啥难事啦!下面给你几个主流编程语言的实用方案,都是我在实际项目里验证过的,靠谱得很:

1. Python 方案(推荐用 BeautifulSoup)

Python生态里处理HTML文本提取,BeautifulSoup绝对是首选工具,简单直观还能处理各种奇葩HTML结构。

首先得先安装依赖:

pip install beautifulsoup4

然后写代码就行,它会自动帮你过滤掉script、style这类不需要的标签,提取出页面的有效文本:

from bs4 import BeautifulSoup

# 假设你已经拿到的HTML存在这个变量里
html_content = "<html><body><h1>Hello World</h1><p>This is a <b>test</b> paragraph.</p></body></html>"

soup = BeautifulSoup(html_content, "html.parser")
# 提取纯文本,strip=True可以自动去除多余的空格和换行
plain_text = soup.get_text(strip=True, separator=" ")

print(plain_text)
# 输出: Hello World This is a test paragraph.

如果需要更精细的控制(比如保留某些标签的换行逻辑),可以先手动移除不需要的标签再提取:

# 先删除script和style标签
for script in soup(["script", "style"]):
    script.decompose()

# 再提取文本,保留自然换行
plain_text = "\n".join([line.strip() for line in soup.stripped_strings])
2. JavaScript/Node.js 方案

如果是在浏览器端处理,直接用原生的DOMParser就行,不用额外装库:

// 假设htmlContent是你获取到的HTML字符串
const htmlContent = "<html><body><h1>Hello World</h1><p>This is a <b>test</b> paragraph.</p></body></html>";

const parser = new DOMParser();
const doc = parser.parseFromString(htmlContent, "text/html");
const plainText = doc.body.textContent.trim();

console.log(plainText);
// 输出: Hello World This is a test paragraph.

如果是Node.js环境,推荐用cheerio(相当于Node版的jQuery),安装后用法很类似:

npm install cheerio
const cheerio = require("cheerio");

const htmlContent = "<html><body><h1>Hello World</h1><p>This is a <b>test</b> paragraph.</p></body></html>";
const $ = cheerio.load(htmlContent);

// 提取纯文本
const plainText = $("body").text().trim();
console.log(plainText);
3. Java 方案(用 Jsoup)

Java里处理HTML文本,Jsoup是业界标准,功能强大且易用。先引入依赖(Maven为例):

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.17.2</version>
</dependency>

然后写代码:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class HtmlToText {
    public static void main(String[] args) {
        String htmlContent = "<html><body><h1>Hello World</h1><p>This is a <b>test</b> paragraph.</p></body></html>";
        Document doc = Jsoup.parse(htmlContent);
        String plainText = doc.text();
        
        System.out.println(plainText);
        // 输出: Hello World This is a test paragraph.
    }
}

小提示

不管用哪种方案,这些库都会自动忽略HTML标签、注释以及script/style里的代码,提取页面的可见文本。如果需要处理特殊的HTML结构(比如自定义标签、嵌套很深的内容),可以针对性地调整选择器或者过滤逻辑,灵活得很!

内容的提问来源于stack exchange,提问作者BHughes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:36:55