2013-03-18 13 views
6

मैं क्लोजर के लिए नया हूं और मुझे कुछ उदाहरण चाहिए। क्लोजर का उपयोग करके एचटीएमएल फाइल को पार्स करने के लिए कृपया मुझे दिखाएं?क्लोजर का उपयोग करके एचटीएमएल फाइल का विश्लेषण कैसे करें?

+0

कोशिश करें http://stackoverflow.com/questions/3628958/good-clojure-code-examples –

उत्तर

17

Enlive इसके लिए एक शानदार उपकरण है। संक्षेप में:

(ns foo.bar 
    (:require [net.cgrand.enlive-html :as html])) 

(defn fetch-page [url] 
    (html/html-resource (java.net.URL. url))) 

Here एक स्क्रैपर/पार्सर के रूप में और एक टेम्पलेट इंजन के रूप में यह दोनों का उपयोग करने पर एक अच्छा ट्यूटोरियल है:

Here एक पेज स्क्रैप की एक छोटी सी उदाहरण है।

एक और विकल्प clj-tagsoup है। Enlive टैग्स का भी उपयोग करता है, लेकिन इसके अलावा एक प्लग करने योग्य पार्सर है ताकि आप अन्य पार्सर्स के लिए समर्थन जोड़ सकें।

+0

क्या मैं केवल क्लोजर का उपयोग करके एचटीएमएल फ़ाइल को दूषित या अन्य पार्सर के बिना पार्स कर सकता हूं? – slawter

+0

ठीक है, आप केवल करने से एक स्ट्रिंग के रूप में एक वेब पृष्ठ की सामग्री प्राप्त कर सकते हैं: (slurp "http://www.example.com"), लेकिन आदेश में एक प्रबंधनीय तरह से सामग्री के साथ काम करने के लिए आप एक पार्सर की जरूरत है (enlive की तरह)। – ebaxt

4

क्लोजर का xmlparsing लाइब्रेरी आपके लिए है।

पार्स और स्रोत लोड करता है, जो एक फ़ाइल, इनपुटस्ट्रीम या एक यूआरआई नामकरण स्ट्रिंग हो सकता है। टैग,: attrs, और: सामग्री xml/तत्व struct-नक्शा, जो कुंजी है की एक पेड़ देता है। और एक्सेसर एफएनएस टैग, attrs, और सामग्री। अन्य पारसर्स startparse गुजर, एक fn एक स्रोत और एक ContentHandler ले रहे हैं और लौटने एक पार्सर

या enlive का उपयोग द्वारा आपूर्ति की जा सकती है, यह clojure पर पूरी तरह से ढांचा है या जावा आधारित HtmlCleaner का उपयोग करें।

संबंधित मुद्दे