Clojure中与Python的lxml库相当的库是什么?

10

我正在寻找Clojure/Java版本的Python lxml库。

过去我用过它来解析各种HTML(作为BeautifulSoup的替代品),而且它很好地实现了XML的elementtree API - 真的是个可靠的朋友! 请问有没有类似的Java/Clojure库可以推荐?

关于lxml:

lxml是一个基于libxml2的XML和HTML处理库。它能够很好地处理破损的HTML页面,因此非常适合屏幕抓取任务。它还实现了ElementTree API,因此XML/HTML结构被表示为树形对象,并完全支持XPath和CSS选择器等功能。

此外,它还具有一些非常方便的实用程序函数,如“cleaner”模块,可以从“soup”中剥离出不需要的标签(例如脚本标签、样式标签等)。

因此,它易于使用、强大且非常快速...!


一个简短的描述lxml的作用可能有助于Java/Clojure专家理解您正在寻找什么。 - pstanton
好主意--加上了“关于lxml”的部分。 - erikcw
2个回答

8

Enlive: http://github.com/cgrand/enlive

我曾用它进行屏幕抓取,效果不错。它使用类似CSS选择器的语法来获取文档中的元素。


5
对于Java(因此可以从Clojure使用)的是tagsoup-library,它像lxml一样是一个容错解析器,适用于有错误的SGML变体。
Clojure有一个捆绑的命名空间clojure.xml,但这仅适用于有效的XML。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接