2009-10-14 7 views
11

Estoy buscando el Clojure/Java equivalente a la biblioteca lxml de Python.Clojure equivalente a la biblioteca lxml de Python?

Lo he usado muchísimo en el pasado para analizar todo tipo de html (como reemplazo de BeautifulSoup) y es genial poder usar la misma API de elementtree para xml también, ¡realmente un amigo de confianza! ¿Alguien puede recomendar una biblioteca Java/Clojure similar?

Sobre lxml

lxml es una biblioteca de procesamiento de XML y HTML con sede fuera de libxml2. Maneja muy bien las páginas html rotas, por lo que es excelente para tareas de raspado de pantalla. También implementa la API de ElementTree, por lo que la estructura xml/html se representa como un objeto de árbol con soporte completo para xpath y css selectores, entre otras cosas.

También tiene algunas funciones de utilidad realmente útiles como el módulo "limpiador" que eliminará las etiquetas no deseadas de la "sopa" (es decir, etiquetas de guiones, etiquetas de estilo, etc.).

¡Así que es simple de usar, robusto y MUY rápido ...!

+0

una breve descripción de lo que lxml puede ayudar a los especialistas de java/clojure a entender lo que está buscando – pstanton

+0

Buena idea - agregó la sección "Acerca de lxml" – erikcw

Respuesta

8

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

Lo he utilizado para la pantalla-raspado y funciona bastante bien para eso. Utiliza un selector CSS como sintaxis para obtener elementos en el documento.

4

Para Java (y, por lo tanto, utilizable de Clojure) es el tagsoup-library, que, como lxml, es un analizador tolerante para las variantes SGML defectuosas.

Clojure tiene un espacio de nombre agrupado clojure.xml, pero esto solo funcionará con XML válido.

Cuestiones relacionadas