10

我正在寻找与 Python 的 lxml 库等效的 Clojure/Java。

过去我曾大量使用它来解析各种 html(作为 BeautifulSoup 的替代品),能够对 xml 使用相同的 elementtree api 真是太好了——真的是一个值得信赖的朋友!谁能推荐一个类似的 Java/Clojure 库?

关于 lxml

lxml 是一个基于 libxml2 的 xml 和 html 处理库。它可以很好地处理损坏的 html 页面,因此非常适合屏幕抓取任务。它还实现了 ElementTree api,因此 xml/html 结构被表示为一个树对象,完全支持 xpath 和 css 选择器等。

它还具有一些非常方便的实用功能,例如“清洁器”模块,该模块将从“汤”中去除不需要的标签(即脚本标签、样式标签等)。

因此,它使用简单、功能强大且速度非常快......!

4

2 回答 2

8

直播: http ://github.com/cgrand/enlive

我已经将它用于屏幕抓取,并且效果很好。它使用类似于 CSS 选择器的语法来获取文档中的元素。

于 2009-10-15T13:31:22.697 回答
4

对于 Java(因此可以从 Clojure 中使用)是tagsoup-library,它与 一样lxml,是一个容错的 SGML 变体的解析器。

Clojure 有一个捆绑的命名空间clojure.xml,但这仅适用于有效的 XML。

于 2009-10-15T00:16:27.873 回答