是否有类似于 lxml 或 nokogiri 的 Java 库? [关闭]
Posted
技术标签:
【中文标题】是否有类似于 lxml 或 nokogiri 的 Java 库? [关闭]【英文标题】:Is there a library similar to lxml or nokogiri for Java? [closed] 【发布时间】:2011-01-08 12:43:01 【问题描述】:我想做一些屏幕抓取,最好使用 CSS 选择器而不是 XPath。是否有类似于 Ruby 或 Python 中的库?
【问题讨论】:
【参考方案1】:您可以通过 jRuby 使用hpricot。有关它的更多详细信息,请参阅this SO question。
【讨论】:
【参考方案2】:有十几个用 Java 编写的屏幕抓取库。仅举几例:
TagSoup - 一个用 Java 编写的符合 SAX 的解析器,而不是 解析格式良好或有效的 XML, 解析 html,因为它在 狂野的:讨厌和野蛮,虽然相当 往往不短。 TagSoup 是 专为需要 使用一些处理这些东西 看似合理的应用程序 设计。通过提供 SAX 接口, 它允许标准的 XML 工具 甚至适用于最糟糕的 HTML。 Jericho HTML Parser - Jericho HTML Parser 是一个简单但功能强大的 java库允许分析和 对部分 HTML 的操作 文档,包括一些常见的 服务器端标签,同时复制 逐字记录任何无法识别或无效的 HTML。它还提供高级 HTML 表单操作功能。是 既不是事件也不是基于树的 解析器,而是使用组合 简单的文本搜索,高效的标签 识别和标签位置缓存。 整个源文档的文本 首先加载到内存中,然后 只搜索了相关的片段 对于每个的相关字符 搜索操作。 HTML Cleaner - HtmlCleaner 重新排序单个元素和 从脏文件生成格式良好的 XML HTML。它遵循类似的规则 大多数网络浏览器按顺序使用 创建文档对象模型。一种 用户可以提供自定义标签和规则 设置标签过滤和平衡。 NekoHTML - NekoHTML 是一个简单的 HTML 扫描器和标签平衡器, 使应用程序程序员能够 解析 HTML 文档并访问 使用标准 XML 的信息 接口。解析器可以扫描 HTML 文件和“修复”许多常见的 人类(和计算机)的错误 作者在编写 HTML 文件。 NekoHTML 添加缺失 父元素;自动关闭 带有可选结束标签的元素;和 可以处理不匹配的内联元素 标签。
还有更多HTML Screen Scraping Tools written in Java。但正如我在this previous answer 中提到的,这些是 IMO 处理任何类型内容(理解各种废话)的最佳方法。不过,这对您来说可能不是问题。
以防万一,不妨查看帖子Nokogiri pure Java status。
更新:一个新项目已经发布(2010-01-31),jsoup,它提供了一个selector-syntax to find elements。请参阅其网站了解更多详细信息和/或来自其作者的this answer。
【讨论】:
以上是关于是否有类似于 lxml 或 nokogiri 的 Java 库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
创建“Nokogiri::XML”或“Nokogiri::HTML”对象时如何避免创建无意义的空白文本节点
是否有类似于matlabs datatip的python dash中的datatip类或方法来编写脚本?