JavaScript を使用する Web サイトのスクリーン スクレイピングを行いたいと考えています。
Python 用のプログラム Web ブラウザーである mechanizeがあります。ただし、(当然のことながら) JavaScript を解釈しません。Python用のプログラムブラウザはありますか? そうでない場合、作成を試みるために使用できる Python の JavaScript 実装はありますか?
JavaScript を使用する Web サイトのスクリーン スクレイピングを行いたいと考えています。
Python 用のプログラム Web ブラウザーである mechanizeがあります。ただし、(当然のことながら) JavaScript を解釈しません。Python用のプログラムブラウザはありますか? そうでない場合、作成を試みるために使用できる Python の JavaScript 実装はありますか?
Seleniumのようなツールを使用して、Web ブラウザーを使用してスクレイピングを自動化する方がよい場合があります。これにより、JS が実行され、実際のユーザーと同じようにページがレンダリングされます。
PyV8パッケージは、Python 用の Google の V8 Javascript エンジンを適切にラップします。Python から Javascript コードへの呼び出しだけでなく、Javascript から Python コードへのコールバックもできるので、特に便利です。これにより、ブラウザが提供する通常のオブジェクト (つまり、Javascript グローバル名前空間のすべて: 「window」、「document」など) を実装することが非常に簡単になります。 Javascript 対応の Python ブラウザー エミュレーターです。おそらくこれを mechanize に接続します。
私のお気に入りはPyPhantomJSです。Python と PyQt4 を使用して記述されています。完全にヘッドレスで、JavaScript から完全に制御できます。
ただし、実際にページを表示する場合はQWebView
、PyQt4 からも使用できます。
spynner「QtWebkit フレームワークに基づく Javascript/AJAX サポートを備えた Python 用のステートフルなプログラム Web ブラウザ モジュール」もあります: http://code.google.com/p/spynner/
また、問題のページでChickenfootページ トリガーを定義し、ページで必要な操作を実行し、操作の結果をローカル ファイルに保存し、プログラム内のコマンド ラインから Firefox を呼び出してから、ファイルを読み取ることもできます。 .
Zopeブラウザを試すことができます
http://pypi.python.org/pypi?:action=display&name=zope.testbrowser
http://wiki.python.org/moin/WebBrowserProgrammingで利用可能なオプションのいくつかを確認することをお勧めします- 驚くべきことに、これはよくある質問として出てきます (今日、stackoverflow で 3 つ見つけました。 Googleで「python browser」という単語を検索します)。同じことをすると、私が与えた他の答えが見つかります。