用于从HTML页面中提取文本块的Java库

时间:2012-01-20 12:31:16

标签: java html text information-extraction

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

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

有一些库可以做到这一点吗?

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

示例(来自官方网页):

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

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

答案 2 :(得分:1)

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

对于博客,我可能会在博客标题中查找供稿链接,并使用供稿解析库来解析每篇文章的永久链接。抓取这些并使用套管(仅限必要,因为许多博客不包括RSS / Atom提要中的全文)。很多博客也不包括主页上的全文,因此我将重点介绍识别永久链接的方法,然后从那里开始。