是否有类似于Java的lxml或nokogiri的库?

VoY*_*VoY 9 java screen-scraping

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

Pas*_*ent 7

有十几个用Java编写的屏幕抓取库.仅举几例:

  • TagSoup - 一个用Java编写的兼容SAX的解析器,它不是解析格式良好或有效的XML,而是解析在野外发现的HTML:讨厌和野蛮,虽然通常很短.TagSoup专为那些必须使用某种理性应用程序设计来处理这些东西的人而设计.通过提供SAX接口,它允许将标准XML工具应用于最差的HTML.
  • Jericho HTML Parser - Jericho HTML Parser是一个简单但功能强大的java库,允许分析和处理HTML文档的各个部分,包括一些常见的服务器端标记,同时逐字逐句地复制任何无法识别或无效的HTML.它还提供高级HTML表单操作功能.t既不是事件也不是基于树的解析器,而是使用简单文本搜索,高效标记识别和标记位置缓存的组合.首先将整个源文档的文本加载到内存中,然后只搜索相关的段搜索每个搜索操作的相关字符.
  • HTML Cleaner - HtmlCleaner重新排序单个元素,并从脏HTML生成格式良好的XML.它遵循大多数Web浏览器用于创建文档对象模型的类似规则.用户可以提供用于标签过滤和平衡的自定义标签和规则集.
  • NekoHTML - NekoHTML是一个简单的HTML扫描程序和标记平衡器,使应用程序编程人员能够解析HTML文档并使用标准XML接口访问信息.解析器可以扫描HTML文件并"修复"人类(和计算机)作者在编写HTML文档时所犯的许多常见错误.NekoHTML添加了缺少的父元素; 自动关闭带有可选结束标记的元素; 并且可以处理不匹配的内联元素标记.

还有更多用Java编写的HTML Screen Scraping Tools.但这些是IMO最好处理任何类型的内容(了解所有类型的废话),正如我在上一个答案中提到的那样.这可能不是你的问题.

为了以防万一,也许可以查看线程Nokogiri纯Java状态.

更新:一个新项目已经发布(2010-01-31),jsoup,它提供了一个选择器语法来查找元素.有关详细信息和/或其作者的回答,请访问其网站.