用于Java的HTML / XML Parser

时间:2010-01-24 23:27:33

标签: java html xml dom parsing

哪些HTML解析器具有以下功能:

  • 快速
  • 线程安全
  • 可靠且无错误
  • 解析HTML和XML
  • 处理错误的HTML
  • 有DOM实现
  • 支持HTML4,JavaScript和CSS代码
  • 相对简单,面向对象的API

您认为哪种解析器更好?

谢谢。

7 个答案:

答案 0 :(得分:16)

结帐Web Harvest。它既是一个可以使用的库,也是一个数据提取工具,听起来就是你想要做的。您可以创建XML脚本文件,以指示scraper如何从中提取所需的信息。提供的GUI对于快速测试脚本非常有用。

查看project's samples page,了解它是否适​​合您的目标。

答案 1 :(得分:7)

最着名的是NekoHTMLJTidy

NekoHTML基于Xerces,提供了一个简单的自适应SAXParser,它实现了XMLReader JavaSE接口。

JTidy更倾向于将你的html代码格式化为XML有效的东西,但作为XML解析器仍然非常有用,如果需要可以生成DOM树。

您可以查看this list其他替代方案。

另一种选择可能是通过jRuby使用hpricot

答案 2 :(得分:5)

绝对是

Validator.nu's HTML parser。它是HTML5解析算法的一个实现,Gecko正在用它的C ++转换替换它自己的HTML解析器。

答案 3 :(得分:5)

Apache Tika是最佳选择。 Apache最近从现有项目中提取了许多子项目并将其公之于众。 Tika是以前是Apache Lucene的一个组件之一。由于Apache的支持和声誉以及广泛使用的父项目Lucene,它必定是一个非常好的选择。此外,它是开源的。

Apache Tika网站简介:

  

Apache Tika™工具包使用现有的解析器库检测并从各种文档中提取元数据和结构化文本内容。

支持的格式为:

HyperText Markup Language
XML and derived formats
Microsoft Office document formats
OpenDocument Format
Portable Document Format
Electronic Publication Format
Rich Text Format
Compression and packaging formats
Text formats
Audio formats
Image formats
Video formats
Java class files and archives
The mbox format

答案 4 :(得分:1)

嗯:

在java中没有那么多优秀的HTML解析器,但是这里有一些替代方案: http://java-source.net/open-source/html-parsers

他们中很少有人支持Javascript。实际上,我认为你必须使用Rhino(http://www.mozilla.org/rhino/)自己完成这部分。

答案 5 :(得分:1)

我认为HTML Cleaner正是您所寻找的。请参阅TheServerSide上的announcement,了解它与JTidy,TagSoup,NekoHtml的对比情况。

答案 6 :(得分:1)

你可能想看看像无头模式运行Mozilla这样的事情。这是一个link,可以帮助您入门,我相信您可以使用Google来了解更多信息。