3

私はグーグルで検索しましたが、満足のいく答えが見つかりません。このSOの質問は関連していますが、ちょっと古く、探しているものとは正反対です.CSSセレクターではなくXPathを使用してスクリーンスクレイピングを行う方法です。

基本的なスクリーン スクレイピングに enlive を使用しましたが、XPath セレクターの機能が必要になる場合があります。だからここにあります:

Clojure(Java)のNokogiriまたはlxmlに相当するものはありますか? 「純ジャワのこぎり」の状態は?clojure からライブラリを使用する方法はありますか? このハックよりも優れた代替手段はありますか?

4

1 に答える 1

3

ここにはいくつかの可能性があります。

これらのいくつかは、機能するために半整形式の XML を必要とします。持っていない場合は、clj-tagsouphiccupを組み合わせて XML を生成し (clj-tag-soup で解析すると、hiccup と XML として書き出すフォームが生成されます)、それを操作します。

まず、ネイティブの JDK 機能を使用します。ドキュメントが適切に形成されていると仮定して、ネイティブ JDK 解析のラッパーを提供するclj-xpathを使用してみてください。

それでも十分でない場合は、より Clojure データ構造に基づくルートを取ることを検討してください。より単純なパスでは、TagSoup の出力と、マップ、フィルター、および nths の組み合わせを使用できます。

より高度なものが必要な場合は、ジッパーを使用してデータの周りに構造を提供し、操作を容易にすることを検討してください。clojure.xml/parseとを使用clojure.zip/xml-zipしてジッパーを作成し、そこから進みます。例はhttp://techbehindtech.com/2010/06/25/parsing-xml-in-clojure/にあります。

ネイティブ構造を使用することは、言語の全能力を発揮できるので、複雑な場合に私が好む方法です。

XPath が必要な理由のサンプルを提供していただければ、サンプル コードを提供できます。

于 2012-12-04T03:11:14.250 に答える