【问题标题】:Is there a library similar to lxml or nokogiri for Java? [closed]是否有类似于 lxml 或 nokogiri 的 Java 库? [关闭]
【发布时间】:2011-01-08 12:43:01
【问题描述】:

我想做一些屏幕抓取,最好使用 CSS 选择器而不是 XPath。是否有类似于 Ruby 或 Python 中的库?

【问题讨论】:

    标签: java screen-scraping


    【解决方案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

      【讨论】:

        猜你喜欢
        • 2010-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-20
        • 1970-01-01
        相关资源
        最近更新 更多