Clojure:
HTML 파싱

어떻게:

Clojure는 내장 HTML 파싱 기능이 없지만, Java 라이브러리 또는 Clojure 래퍼들인 enlive 또는 hickory를 활용할 수 있습니다. 두 가지 모두 사용하는 방법은 다음과 같습니다:

Enlive 사용하기:

Enlive는 HTML 파싱 및 웹 스크레이핑에 인기 있는 선택입니다. 먼저, 프로젝트 의존성에 포함시키세요:

[net.cgrand/enlive "1.1.6"]

그런 다음, HTML을 파싱하고 탐색할 수 있습니다:

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

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

이 코드는 HTML 페이지를 가져와 클래스 some-class를 가진 모든 <div> 요소를 선택합니다.

출력은 다음과 같을 수 있습니다:

({:tag :div, :attrs {:class "some-class"}, :content ["여기 몇 가지 내용이 있습니다."]})

Hickory 사용하기:

Hickory는 Clojure에서 작업하기 쉬운 형식으로 HTML을 파싱하는 방법을 제공합니다. 프로젝트 의존성에 Hickory를 추가하세요:

[hickory "0.7.1"]

간단한 예는 다음과 같습니다:

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

;; HTML을 Hickory 형식으로 파싱
(let [doc (hickory/parse "<html><body><div id='main'>안녕, 세계!</div></body></html>")]
  ;; id가 'main'인 div를 선택
  (select/select (select/id "main") doc))

이 코드는 간단한 HTML 문자열을 파싱하고 CSS 선택자를 사용하여 ID가 maindiv를 찾습니다.

샘플 출력:

[{:type :element, :tag :div, :attrs {:id "main"}, :content ["안녕, 세계!"]}]

enlivehickory 모두 Clojure에서 HTML 파싱을 위한 강력한 솔루션을 제공하며, enlive는 템플릿에, hickory는 데이터 변환에 더 중점을 둡니다.