我在我的工作中做了很多 HTML 解析。到目前为止,我一直在使用 HtmlUnit headless 浏览器进行解析和浏览器自动化。
现在,我想将这两个任务分开。
我想使用一个轻量级的 HTML 解析器,因为在 HtmlUnit 中首先加载一个页面,然后获取源代码然后解析它需要很长时间。
我想知道哪个 HTML 解析器可以有效地解析 HTML。我需要
- 速度
- 通过“id”或“名称”或“标签类型”轻松定位任何 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 了解更多信息。
这是一个新项目,欢迎提出任何改进意见!
关于java - 如何使用 Java 有效地解析 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2168610/