Pacchetto comune Lisp per l'analisi HTML non valido? [chiuso]
-
15-10-2019 - |
Domanda
Come un esercizio di apprendimento, sto scrivendo un raschietto web in Common Lisp. L'(approssimativa) piano è:
Ho appena eseguito in un punto critico: il sito che sto raschiando non produce sempre XHTML valido. Ciò significa che il punto 3 (analizzare le pagine con XMLs) non funziona. E io sono come riluttante a usare le espressioni regolari come questo ragazzo : -)
Quindi, qualcuno può raccomandare un pacchetto Common Lisp per l'analisi XHTML valido? Sto immaginando qualcosa di simile al HTML Agility pacchetto for .NET ...
Soluzione
Il progetto "chiusura-html" (disponibile in Quicklisp) si riprenderà dal fasullo HTML e produrre qualcosa con cui si può lavorare. Io uso la chiusura-html insieme CXML per elaborare le pagine Web arbitrarie, e funziona bene. http://common-lisp.net/project/closure/closure-html/
Altri suggerimenti
per i prossimi visitatori: oggi abbiamo Plump: https://shinmera.github.io/plump
Plump è un parser per HTML / XML, come documenti, concentrandosi su essere indulgente nei confronti di markup non valido. E 'in grado di gestire le cose come attributi non validi, cattiva chiusura l'ordine dei contrassegni, le entità non codificati, tipi di tag inesistenti, etichette auto-chiusura e così via. Esso analizza i documenti ad una rappresentazione di classe e offre un piccolo insieme di funzioni DOM per manipolarlo. Siete liberi di cambiarlo per analizzare per le proprie classi però.
e li abbiamo altre librerie per interrogare il documento, come lquery (jquery-like) o CLSS (semplici selettori CSS) dello stesso autore.
Ora abbiamo anche un piccolo tutorial on the Common Lisp Cookbook: https: //lispcookbook.github.io/cl-cookbook/web-scraping.html
Si veda anche Common Lisp wiki: http://www.cliki.net/Web
Duncan, finora ho avuto successo utilizzando Clozure Common Lisp sia sotto Ubuntu Linux e Windows (7 e XP), quindi se siete alla ricerca di un'implementazione che funzionerà ovunque si potrebbe provare questo.