Clojure中等效于Python的lxml库的是什么?
我在找Clojure或Java中类似于Python的lxml库的东西。
我以前用过lxml很多次,它可以解析各种HTML(可以替代BeautifulSoup),而且它的元素树API也可以用来处理XML,真的是个值得信赖的好帮手!有没有人能推荐一个类似的Java或Clojure库呢?
关于lxml
lxml是一个基于libxml2的XML和HTML处理库。它能很好地处理那些有问题的HTML页面,所以在抓取网页内容时特别好用。它还实现了元素树API,这样XML和HTML的结构就像一棵树一样,可以完全支持xpath和CSS选择器等功能。
它还有一些非常实用的工具函数,比如“cleaner”模块,可以从“汤”里去掉不需要的标签(比如脚本标签、样式标签等等)。
所以它使用起来简单、稳定,而且速度非常快…!
2 个回答
5
对于Java(所以也可以在Clojure中使用),有一个叫做tagsoup
库,它就像lxml
一样,是一个可以处理有问题的SGML变种的宽容解析器。
Clojure有一个自带的命名空间clojure.xml
,但是这个只能处理有效的XML。
8
Enlive: http://github.com/cgrand/enlive
我用过这个工具来抓取网页上的信息,它在这方面表现得很好。它使用了一种类似CSS选择器的语法来获取文档中的元素。