Clojure中等效于Python的lxml库的是什么?

10 投票
2 回答
1386 浏览
提问于 2025-04-15 15:04

我在找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选择器的语法来获取文档中的元素。

撰写回答