1

我想从 HTML 页面中提取文本块,我正在使用锅炉管道来执行此操作。它适用于页面中的一个文本,但某些页面(如博客)在页面中有多个文本。

我想提取所有文本,但将每个文本标识为单独的文本,而不仅仅是一个文本。

有一些图书馆可以做到这一点吗?

编辑:我正在使用 Jsoup 来解析 HTML,但我不想进行解析,而是像样板管道那样在页面中提取信息。我想测试其他类似的工具。

4

3 回答 3

3

JSoup是用于此类任务的非常广泛的解析器。请检查一下。

于 2012-01-20T15:47:37.947 回答
2

好吧,我个人喜欢将DojHtmlUnit一起使用。基本上,Doj 引入了类似于 Java 的 CSS 选择器的东西。

示例(来自官方页面):

Doj spanDoj = Doj.on(page).get("#updates tr", 1).get("td", 2).get("span.item");

您可以在链接页面上看到更复杂的示例(向下滚动)。

于 2012-01-20T12:41:34.733 回答
1

我所知道的最接近的 Java 库是 Road Runner 项目: http ://www.dia.uniroma3.it/db/roadRunner/ 这是一个可以在 HTML 文档中的标记上构造一种特殊类型的正则表达式的系统,它可以(在许多情况下)检测基于相同模板的多个文档的此类模式。对于博客,这可以通过例如查看分页页面来实现。您可能仍然需要准确地挑选出每个站点感兴趣的重复模式。

对于博客,我可能会在博客的标题中寻找一个提要链接,并使用提要解析库来解析每篇文章的永久链接。抓取这些并使用样板管道(仅需要,因为许多博客不包含 RSS/Atom 提要中的全文)。许多博客也不在主页上包含全文,所以我会专注于识别永久链接的方法,然后从那里开始。

于 2012-01-20T19:19:32.943 回答