Clojure:
Analysering av HTML

Hvordan:

Clojure har ikke innebygd evne til å tolke HTML, men du kan utnytte Java-biblioteker eller Clojure-wrappere som enlive eller hickory. Her er hvordan du bruker begge:

Bruke Enlive:

Enlive er et populært valg for HTML-tolkning og web-skrapping. Først, inkluder det i prosjektavhengighetene dine:

[net.cgrand/enlive "1.1.6"]

Deretter kan du tolke og navigere i HTML slik:

(require '[net.cgrand.enlive-html :as html])

(let [doc (html/html-resource (java.net.URL. "http://example.com"))]
  (html/select doc [:div.some-class]))

Dette kodeutsnittet henter en HTML-side og velger alle <div>-elementer med klassen some-class.

Utdata kan se slik ut:

({:tag :div, :attrs {:class "some-class"}, :content ["Her er noe innhold."]})

Bruke Hickory:

Hickory tilbyr en måte å tolke HTML på til et format som er lettere å jobbe med i Clojure. Legg Hickory til prosjektavhengighetene dine:

[hickory "0.7.1"]

Her er et enkelt eksempel:

(require '[hickory.core :as hickory]
         '[hickory.select :as select])

;; Tolke HTML-en til Hickory-format
(let [doc (hickory/parse "<html><body><div id='main'>Hei, verden!</div></body></html>")]
  ;; Velg div-en med id 'main'
  (select/select (select/id "main") doc))

Denne koden tolker en enkel HTML-streng og bruker en CSS-selektor for å finne en div med ID-en main.

Eksempelutdata:

[{:type :element, :tag :div, :attrs {:id "main"}, :content ["Hei, verden!"]}]

Både enlive og hickory tilbyr robuste løsninger for HTML-tolkning i Clojure, med enlive som fokuserer mer på templating og hickory som legger vekt på datatransformasjon.