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 ובוחר את כל אלמנטי ה-<div>
עם המחלקה some-class
.
הפלט עשוי להיראות כך:
({:tag :div, :attrs {:class "some-class"}, :content ["הנה קצת תוכן."]})
באמצעות Hickory:
Hickory מספק דרך לפענח HTML לפורמט שנוח יותר לעבוד איתו ב-Clojure. הוסף את 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>")]
;; בחירת ה-div עם ה-id 'main'
(select/select (select/id "main") doc))
קוד זה מפרסר מחרוזת HTML פשוטה ומשתמש בבורר CSS כדי למצוא div
עם ה-ID main
.
דוגמה לפלט:
[{:type :element, :tag :div, :attrs {:id "main"}, :content ["שלום, עולם!"]}]
גם enlive
וגם hickory
מציעים פתרונות מוצקים לפענוח HTML ב-Clojure, כש-enlive
מתמקד יותר בתבניות ו-hickory
מדגיש המרה של נתונים.