2009-10-14 4 views
11

Je suis à la recherche de l'équivalent Clojure/Java de la bibliothèque lxml de Python. Je l'ai utilisé une tonne dans le passé pour analyser toutes sortes de html (en remplacement de BeautifulSoup) et c'est génial de pouvoir utiliser le même elementIse api pour xml - vraiment un ami de confiance! Quelqu'un peut-il recommander une bibliothèque Java/Clojure similaire?Clojure équivalent à la bibliothèque lxml de Python?

A propos lxml

lxml est une bibliothèque de traitement xml et html basé sur de libxml2. Il gère très bien les pages html brisées, ce qui est excellent pour les tâches de grattage d'écran. Il implémente également l'api ElementTree, donc la structure xml/html est représentée comme un objet arbre avec un support complet pour les sélecteurs xpath et css entre autres choses. Il possède également des fonctions utilitaires vraiment pratiques telles que le module «nettoyeur» qui supprimera les étiquettes indésirables de la «soupe» (c'est-à-dire les étiquettes de script, les étiquettes de style, etc ...).

Il est donc simple à utiliser, robuste et TRÈS RAPIDE ...!

+0

une brève description de ce que lxml pourrait aider les spécialistes java/clojure à comprendre ce que vous cherchez – pstanton

+0

Bonne idée - ajouté la section "about lxml" – erikcw

Répondre

8

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

Je l'ai utilisé pour écran racler et il fonctionne très bien pour cela. Il utilise une syntaxe de sélection CSS comme pour obtenir des éléments dans le document.

4

Pour Java (et donc utilisable à partir de Clojure) est le tagsoup-library, qui, comme lxml, est un analyseur tolérant pour les variantes SGML défectueuses.

Clojure dispose d'un espace de noms groupé clojure.xml, mais cela ne fonctionnera qu'avec du code XML valide.

Questions connexes