2010-01-23 55 views

回答

7

在Java中有十几个屏幕抓取库。只是举几例:

  • TagSoup - 用Java编写的符合SAX的解析器,而不是分析以及组建或有效的XML, 因为它是在 野外发现解析HTML的 :讨厌和残酷的,虽然相当短,往往是不够。 TagSoup为 专为需要 的人设计,它使用一些 处理这个东西的合理应用 设计。通过提供SAX接口, 它允许将标准XML工具应用于即使是最差的HTML也应用到 。
  • Jericho HTML Parser - 杰里科HTML解析器是一个简单但功能强大的 java库,允许分析和 操纵的HTML文档 ,包括一些常见的 服务器端代码的部分,当再现 逐字任何无法识别或无效 HTML。它还提供了高级HTML表格操作功能。 t是 既不是事件也不是基于树的 解析器,而是使用简单文本搜索的组合 ,高效标签 识别和标签位置缓存。 整个源文件 的文本首先被加载到内存中,然后 只搜索 搜索操作的相关字符 的相关段。
  • HTML Cleaner - HtmlCleaner对单个元素进行重新排序,并且 从脏 HTML生成格式良好的XML。它遵循类似的规则,大多数网页浏览器使用 来创建文档对象模型。 A 用户可以提供用于标签过滤和平衡的自定义标签和规则 。
  • 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来自其作者。

相关问题