2009-10-14 16 views
11

Ich bin auf der Suche nach dem Clojure/Java-Äquivalent zu Pythons lxml-Bibliothek.Clojure entspricht Pythons LXML-Bibliothek?

Ich habe es eine Tonne in der Vergangenheit für die Analyse aller Arten von HTML (als Ersatz für BeautifulSoup) verwendet und es ist großartig, in der Lage zu sein, die gleiche elementtree API für xml auch zu verwenden - wirklich ein zuverlässiger Freund! Kann jemand eine ähnliche Java/Clojure-Bibliothek empfehlen?

Über lxml

lxml ist eine xml und html Verarbeitungs-Bibliothek aus der libxml2 basiert. Es behandelt kaputte HTML-Seiten sehr gut, so dass es hervorragend für Screen-Scraping-Aufgaben geeignet ist. Es implementiert auch die ElementTree-API, so dass die xml/html-Struktur als Baumobjekt mit voller Unterstützung für xpath- und css-Selektoren unter anderem dargestellt wird.

Es hat auch einige wirklich nützliche Funktionen wie das "cleaner" -Modul, das unerwünschte Tags aus der "Suppe" entfernt (dh Skript-Tags, Style-Tags, etc ...).

So ist es einfach zu bedienen, robust und sehr schnell ...!

+0

eine kurze Beschreibung dessen, was lxml tut, könnte java/clojure-Spezialisten helfen zu verstehen, wonach Sie suchen – pstanton

+0

Gute Idee - Abschnitt "about lxml" hinzugefügt – erikcw

Antwort

8

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

ich verwendet habe, es für Screen-Scraping und es funktioniert ganz gut dafür. Es verwendet eine CSS-Selektor-ähnliche Syntax zum Abrufen von Elementen im Dokument.

4

Für Java (und damit verwendbar von Clojure) ist die tagsoup-library, die, wie lxml, ein toleranter Parser für fehlerhafte SGML-Varianten ist.

Clojure hat einen gebündelten Namensraum clojure.xml, aber dies funktioniert nur mit gültigem XML.