2013-03-18 17 views

答えて

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は、ページをこするの短い例です。

もう1つのオプションはclj-tagsoupです。 Enliveはtagsoupも使用していますが、プラグイン可能なパーサがあり、他のパーサのサポートを追加することもできます。

+0

clojureだけを使用して、envileや別のパーサーなしでhtmlファイルを解析できますか? – slawter

+0

さて、Webページのコンテンツを文字列として取得することができます(slurp "http://www.example.com")。ただし、コンテンツを扱いやすい方法で処理するには、パーサーが必要です(好きなように)。 – ebaxt

4

Clojureのxmlparsingライブラリがあります。

解析して、ファイル、入力ストリームまたはURIを命名 文字列にすることができ、ソースSを、ロードします。タグ、:attrs、および:のキーを持つxml/element構造マップのツリー、 を返します。アクセッサfnsタグ、 attrs、およびコンテンツ。他のパーサはfnは、ソースとのContentHandlerを取り、 パーサ

またはenliveを使用を返す、 startparseを渡すことによって供給することができ、それはClojureの上に完全なフレームワークですかHtmlCleanerベースのJavaを使用します。

関連する問題