1

JSでいっぱいのウェブサイトをスクレイプするために、GoogleAppEngine内でセレンまたは風車を使用したいと思います。私は風車がpythonとjavascriptで書かれていることを知っています。

これは可能ですか?もしそうなら、どのようにライブラリを挿入しますか?
そうでない場合は、その理由を説明し、代替案を提供していただけますか?

ありがとう。

アップデート

もう少し検索してみると、scrapyは純粋なPythonであることがわかりました。
それは機能しますか?JavaScriptを処理しますか?

4

3 に答える 3

3

Pythonの「スクレイピング」ライブラリがappengineでjavascriptを解釈できる可能性は低いです。これは、GAEサンドボックス化に反する何らかのC拡張機能(spidermonkeyやv8へのバインドなど)が必要になる可能性があるためです。

しかし、もしあなたがJava側に挑戦するなら、あなたはもっと運がいいかもしれません。RhinoをAppEngineで実行できることは知っていますが、 env.jsの助けを借りて、DOMをエミュレートできます。簡単なグーグルで、Java用のスクレイピングツールを多数紹介しています。それはすべてを結びつけるだけの問題です。

HtmlUnitはこれを実行しようとしているように見えますが、スレッド化されているように見えるため、現在appengineに対応しているかどうかは不明です。

于 2011-05-08T23:34:29.170 に答える
1

SeleniumとWindmillはどちらも、ブラウザを制御することしかできず、ブラウザをシミュレートすることはできないと思います。デスクトップ環境で実行され、実際のブラウザを駆動することを期待しています。これは、AppEngineでは実行できません。

URL Fetch APIとBeautifulSoupなどのHTMLパーサーを使用して、 AppEngineからのページスクレイピングを処理できます。

于 2011-05-08T22:23:52.910 に答える
1

Seleniumとwindmill(現在はメンテナンスされていないと思われます)はどちらも、実際のブラウザーのコントローラーです。通常、サブプロセスとして実際のブラウザ(Firefoxなど)を生成し、それを制御します。AppEngineではそれができないと思います。私が知っている純粋なコードブラウザに最も近いのはhtmlunitで、これはJavaです。私の知る限り、Pythonに相当するものはありません。

于 2011-05-08T22:24:45.190 に答える