web-dev-qa-db-ja.com

pythonを使用してajaxページをこする

私はすでに ajaxのスクレイピングに関するこの質問 を見ましたが、pythonはそこで言及されていません。 scrapy の使用を検討しました、私はそれらを信じていますその件に関するいくつかのドキュメントがありますが、ご覧のとおり、ウェブサイトがダウンしているため、どうすればよいかわかりません。次のようにしたいのですが。

「submit」をクリックしてページからページへ移動するexample.comのURLは1つだけです。コンテンツの表示にajaxを使用しているため、URLは変更されません。各ページのコンテンツをスクレイピングしたいのですが、どうすればいいですか?

数字だけを削りたいとしましょう。スクレイピー以外にそれを行うものはありますか?そうでない場合は、ウェブサイトがダウンしているためにドキュメントにアクセスできないため、その方法のスニペットを教えていただけますか。

15
Lynob

まず、スクラップドキュメントは https://scrapy.readthedocs.org/en/latest/ で入手できます。

Webスクレイピング中のAjaxの扱いについて話します。基本的に、アイデアはかなり単純です。

  • ブラウザー開発者ツール、ネットワークタブを開く
  • ターゲットサイトに移動
  • 送信ボタンをクリックして、サーバーに送信される XHR request を確認します
  • スパイダーでこのXHRリクエストをシミュレートします

こちらもご覧ください:

お役に立てば幸いです。

33
alecxe

答えはとても役に立ちましたが、もっと簡単にしたいと思います。

response = requests.post(request_url, data=payload, headers=request_headers)

request.postは3つのパラメーターurl、data、およびheadersを取ります。これら3つの属性の値は、XHRリクエストで確認できます。

リクエストヘッダー全体とフォームデータをコピーして上記の変数にロードすれば、準備完了です

3
Malak