2012-02-27 4 views
1

私はPythonで私の掻き出し能力を実践してきました。私はかなりうまくなっていますが、私がかなり困惑しているいくつかのサイトに出くわしました。彼らは近くの場所を見つけるためにAjaxを利用しています。同じようにいくつかのサイトが設計されています。ウェブサイトの1つはwww.applebees.comです。火かき棒を使用しても、私は答えを見つけることができません。PythonでAjaxを掻く

Pythonはどのようにajax呼び出しによって場所を要求できますか?私は完全に困惑しています。

ページはwww.applebees.comです。右側に郵便番号を入力するフォームがあり、郵便番号に最も近い場所をプルアップします。しかし、この郵便番号が入力された後にソースをプルすると、その場所はまだソースファイルに表示されません。リクエスト/レスポンスは完全にajaxで、htmlソースには隠されています。今私は解決策を研究しようとしています。

+1

AjaxはHTTPリクエストを行うための一般的な方法で、Pythonはプログラミング言語です。唯一正しい答えは「あなたのお気に入りのHTTPライブラリを使用する」ことです。 –

+1

もっと具体的な例を教えてください。たとえば、Applebeeの特定のページですか? –

答えて

7

httpライブラリを使用してプログラムによってスクレイピングすることは、一部のサイトでは困難な場合があります。 JavaScriptの重いサイト(ajaxなど)でユーザーの干渉をシミュレートする場合は、セレンのようなものを使用して実際のブラウザを駆動することを検討することもできます。 Pythonクライアントブラウジングがあり、ページDOMへのアクセス権が得られます。

http://pypi.python.org/pypi/selenium

+1

QtWebkitを使用して、メモリ不足のブラウザインスタンスを使用してJavascriptの重いウェブページをスクラップする、自分のライブラリ[dryscrape](https://github.com/niklasb/dryscrape)へのリンクを追加することがあります。これはSeleniumやAlikesより軽量で高速です。 –

+0

あなたが与えてくれた提案でも、郵便番号を手動で送信しても保存されるhtmlソースが存在しない場合、どのようにロケーション名と住所を抽出できるのか分かりません。私は自分の画面と火かき棒の情報を見ることができますが、ソースをダウンロードするとそこにはありません。 –

+0

これをさらに研究した後、セレンが唯一のルートであるように思われます。 Niklasもオプションです。すべての返信をありがとう –

関連する問題