哪个HTMLparsing器是最好的?

我编码了很多parsing器。 到目前为止,我正在使用HtmlUnit无头浏览器进行parsing和浏览器自动化。

现在,我想分开这两个任务。

由于80%的工作只涉及parsing,我想使用一个浅的HTMLparsing器,因为它需要很多时间在HtmlUnit中首先加载一个页面,然后获取源代码,然后parsing它。

我想知道哪个HTMLparsing器是最好的。 如果接近HtmlUnitparsing器,parsing器会更好。


编辑:

最好的,我想至less有以下function:

  1. 速度
  2. 通过其“标识”或“名称”或“标签types”轻松定位任何HtmlElement。

如果它不清除脏HTML代码,这将是好的。 我不需要清理任何HTML源代码。 我只需要一个最简单的方法来移动HtmlElements并从中收集数据。

自我插件:我刚刚发布了一个新的Java HTMLparsing器: jsoup 。 我在这里提到它是因为我认为它会做你以后的事情。

其派对技巧是一个CSSselect器语法来查找元素,例如:

String html = "<html><head><title>First parse</title></head>" + "<body><p>Parsed HTML into a doc.</p></body></html>"; Document doc = Jsoup.parse(html); Elements links = doc.select("a"); Element head = doc.select("head").first(); 

有关更多信息,请参阅select器 javadoc。

这是一个新的项目,所以任何改进的想法都非常受欢迎!

目前为止我看到的最好的是HtmlCleaner :

HtmlCleaner是用Java编写的开源HTMLparsing器。 在网上find的HTML通常很脏,不合格,不适合进一步处理。 对于这类文件的严重消耗,首先要清理乱七八糟的东西,把订单带到标签,属性和普通文本中去。 对于给定的HTML文档,HtmlCleaner重新排列单个元素并生成格式良好的XML。 默认情况下,它遵循大多数Web浏览器用来创build文档对象模型的类似规则。 但是,用户可以为标签过滤和平衡提供自定义标签和规则集。

使用HtmlCleaner,您可以使用XPath查找任何元素。

对于其他的htmlparsing器,看到这个问题 。

我build议基于HTML5parsingalgorithm的Validator.nuparsing器 。 这是2010-05-03在Mozilla中使用的parsing器