我编写了很多解析器。到目前为止,我一直使用HtmlUnit无头浏览器进行解析和浏览器自动化。
现在,我想将两个任务分开。
由于我80%的工作仅涉及解析,因此我想使用简单的HTML解析器,因为在HtmlUnit中花费大量时间先加载页面,然后获取源然后解析它。
我想知道哪个HTML解析器是最好的。如果解析器与HtmlUnit解析器接近,则解析器会更好。
编辑:
最好的情况是,我至少需要以下功能:
速度 易于通过其“ id”或“ name”或“ tag type”定位任何HtmlElement。 如果不清除脏HTML代码,对我来说可以。我不需要清理任何HTML源。我只需要一种最简单的方法即可在HtmlElements之间移动并从中获取数据。
自我插件:我刚刚发布了一个新的Java HTML解析器:jsoup。我在这里提到它是因为我认为它会做您所追求的。
它的技巧是使用CSS选择器语法来查找元素,例如:
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();
有关更多信息,请参见Selector javadoc。
这是一个新项目,因此任何改进的想法都非常欢迎!