2

現在、いくつかの Web サイトをスクレイピングするために使用される Ruby コードがいくつかあります。私がRubyを使っていたのは、当時あるサイトでRuby on Railsを使っていたからで、それが理にかなっているのです。

今、私はこれを Google App Engine に移植しようとしていますが、行き詰まり続けています。

Google App Engine で動作するように Python Mechanize を移植しましたが、XPATH を使用した DOM インスペクションをサポートしていません。

組み込みの ElementTree を試してみましたが、'&mdash' に遭遇したときに最初に指定した HTML BLOB で停止しました。

そこで ElementTree をハッキングしようとしますか、それとも何か他のものを使用しようとしますか?

ありがとう、マーク

4

5 に答える 5

11

美しいスープ。

于 2009-10-13T22:01:06.403 に答える
6

lxml -- elementtree より 100 倍優れている

于 2009-10-13T22:28:18.593 に答える
4

また、 Scrapyもあります。

于 2009-10-13T22:29:49.300 に答える
0

これ(yahoo.com からすべての URL リンクを抽出する) やこれ(NIST NTP サーバー アドレスを抽出する)など、pyparsingを使用して作成された Web ページ スクレイパーの例が多数あります。手作業でコーディングするのではなく、pyparsing ヘルパー メソッド makeHTMLTags を必ず使用してください。makeHTMLTags は、余分なスペース、大文字と小文字の不一致、予期しない属性、さまざまな引用スタイルを持つ属性値などに対応できる、非常に堅牢なパーサーを作成します。また、Pyparse を使用すると、カスタム エンティティなどの特別な構文の問題をより詳細に制御できます。また、これは純粋な Python であり、自由にライセンスされ、フットプリントが小さい (単一のソース モジュール) ため、他のアプリケーション コードと一緒に GAE アプリに簡単に組み込むことができます。"<" + Literal(tagname) + ">"

于 2009-10-13T23:01:53.223 に答える
0

BeautifulSoupは優れていますが、API が扱いにくいです。BeautifulSoup への ElementTree インターフェースを提供するElementSoupを試してください。

于 2009-11-25T00:18:51.997 に答える