用于Java的HTML/XML Parser

Sha*_*yan 32 html java xml parsing dom

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

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

你认为哪种解析器更好?

谢谢.

Ces*_*sar 16

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

查看项目的样本页面,看看它是否适合您要做的事情.

  • Web Harvest的+1 - 如果您正在尝试进行页面抓取,那么这就是要走的路. (2认同)

Val*_*her 7

最着名的是NekoHTMLJTidy.

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

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

您可以查看此列表以了解其他替代方案.

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


Ms2*_*ger 5

确切地说,Validator.nu的HTML解析器.它是HTML5解析算法的一个实现,Gecko正在用这个的C++转换替换它自己的HTML解析器.


Sha*_*yan 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
Run Code Online (Sandbox Code Playgroud)