Pregunta

Como un ejercicio de aprendizaje, estoy escribiendo un raspador web en Common Lisp. El plan (en bruto) es:

  1. Quicklisp para gestionar dependencias
  2. Drakma para cargar las páginas
  3. Analizar las páginas con XMLs

acabo de correr en un punto de estancamiento: la página web que estoy raspando no siempre produce XHTML. Esto significa que el paso 3 (PARSE las páginas con XMLs) no funciona. Y estoy tan reacios a utilizar expresiones regulares como este tipo : -)

Por lo tanto, cualquier persona puede recomendar un paquete Common Lisp para analizar XHTML válido? Me estoy imaginando algo similar a la HTML agilidad Paquete para .NET ...

¿Fue útil?

Solución

El proyecto "cierre-html" (disponible en Quicklisp) va a recuperarse de falsa HTML y producir algo con el que se puede trabajar. Yo uso el cierre-html junto con CXML para procesar las páginas web arbitrarias, y funciona muy bien. http://common-lisp.net/project/closure/closure-html/

Otros consejos

Para próximos visitantes: hoy tenemos Plump: https://shinmera.github.io/plump

Plump es un analizador de HTML / XML como documentos, centrándose en ser indulgente con marcas inválidas. Se puede manejar cosas como atributos no válidos, mal fin etiqueta de cierre, entidades sin codificar, los tipos de etiquetas inexistentes, las etiquetas de cierre automático y así sucesivamente. Analiza los documentos a una representación de la clase y ofrece un pequeño conjunto de funciones DOM para manipularlo. Usted es libre de cambiarlo a analizar a sus propias clases embargo.

y los que tienen otras bibliotecas para consultar el documento, como lquery (jquery-like) o CLSS (selectores CSS simples) por el mismo autor.

Ahora también tiene un pequeño tutorial sobre el Common Lisp Cookbook: https: //lispcookbook.github.io/cl-cookbook/web-scraping.html

Véase también Common Lisp wiki: http://www.cliki.net/Web

Duncan, hasta ahora he tenido éxito usando Clozure Common Lisp tanto bajo Ubuntu Linux y Windows (XP y 7), por lo que si usted está buscando una aplicación que funcionará en cualquier lugar usted puede tratar de éste.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top