HTML解析和提取文本

时间:2012-08-26 21:48:55

标签: html-parsing jsoup text-extraction

有许多资源可以解析HTML页面并提取文本内容。 Jsoup就是一个例子。就我而言,我想提取用html标签标记的文本内容,每个句子出现在该标签下面。例如,走这个页面

<html>
<head><title>Test Page</title>
<body>
<h1>This is a test page</h1>
<p> The goal is to extract <b>textual content <em> with html tags</em> </b> from html pages.
</body>
</html>

我期待输出如下:

<h1>This is a test page</h1>
<p> The goal is to extract <b>textual content <em> with html tags</em> </b> from html pages.

换句话说,我想在页面的文本内容中包含特定的html标记。

2 个答案:

答案 0 :(得分:0)

你分两步完成。首先,如您所述,使用JSoup创建DOM树。然后使用XSL过滤器处理它。在XSL过滤器中,您只能提取您感兴趣的那些标签。

答案 1 :(得分:0)

要获得结果,您可以使用:

final String html = "<html>"
        + "<head><title>Test Page</title>"
        + "<body>"
        + "<h1>This is a test page</h1>"
        + "<p> The goal is to extract <b>textual content <em> with html tags</em> </b> from html pages."
        + "</body>"
        + "</html>";

// Parse the String into a Jsoup Document
Document doc = Jsoup.parse(html);
Elements body = doc.body().children();

// Do further things here ...
System.out.println(body);

您可以加载文件或网站,而不是字符串html - jsoup提供了这一切。

在此示例中,body包含您作为结果发布的html。

或者您是否需要选择“h1后跟p标签”?​​

但是,您可以查看Jsoup Selector API