Clojure:
HTML parsen
Wie geht das:
Clojure verfügt nicht über eingebaute Fähigkeiten zum Parsen von HTML, aber Sie können Java-Bibliotheken oder Clojure-Wrapper wie enlive oder hickory nutzen. Hier ist, wie man beide verwendet:
Verwendung von Enlive:
Enlive ist eine beliebte Wahl für das Parsen von HTML und Web Scraping. Fügen Sie es zunächst zu Ihren Projektabhängigkeiten hinzu:
[net.cgrand/enlive "1.1.6"]Dann können Sie HTML so parsen und navigieren:
(require '[net.cgrand.enlive-html :as html])
(let [doc (html/html-resource (java.net.URL. "http://example.com"))]
(html/select doc [:div.some-class]))Dieser Schnipsel holt eine HTML-Seite und wählt alle <div> Elemente mit der Klasse some-class aus.
Die Ausgabe könnte folgendermaßen aussehen:
({:tag :div, :attrs {:class "some-class"}, :content ["Hier ist etwas Inhalt."]})Verwendung von Hickory:
Hickory bietet eine Möglichkeit, HTML in ein Format zu parsen, das in Clojure einfacher zu bearbeiten ist. Fügen Sie Hickory Ihren Projektabhängigkeiten hinzu:
[hickory "0.7.1"]Hier ist ein einfaches Beispiel:
(require '[hickory.core :as hickory]
'[hickory.select :as select])
;; Parsen des HTML in das Hickory-Format
(let [doc (hickory/parse "<html><body><div id='main'>Hallo, Welt!</div></body></html>")]
;; Wählen Sie das Div mit der ID 'main'
(select/select (select/id "main") doc))Dieser Code parst einen einfachen HTML-String und verwendet einen CSS-Selektor, um ein div mit der ID main zu finden.
Beispielausgabe:
[{:type :element, :tag :div, :attrs {:id "main"}, :content ["Hallo, Welt!"]}]Sowohl enlive als auch hickory bieten robuste Lösungen für das Parsen von HTML in Clojure, wobei sich enlive mehr auf das Templating konzentriert und hickory die Datentransformation betont.