1. ホーム
  2. javascript

[解決済み] scrapyは、AJAXを使用しているウェブサイトから動的なコンテンツをスクレイピングするために使用できますか?

2022-04-26 13:33:19

質問

最近Pythonを勉強していて、ウェブスクレイパーを作ることに手を染めているところです。 その唯一の目的は、ベッティングウェブサイトからデータを取得し、このデータをエクセルに入れることです。

ほとんどの問題は解決可能で、ちょっといじくりまわして楽しんでいます。しかし、ある問題で大きなハードルにぶつかっています。もし、あるサイトが馬のテーブルをロードし、現在の賭け金をリストした場合、この情報はどのソースファイルにもありません。このデータは、時々、遠隔地のサーバーから更新されていることが明らかなライブデータである。私のPC上のHTMLには、私が必要とする興味深いデータをすべて押し通すサーバーの穴があるだけなのです。

今、私は動的なウェブコンテンツの経験が少ないので、この件に関しては頭を悩ませているところなんです。

JavaやJavascriptがキーになっていると思います、これはよく出てきます。

スクレイパーは、単純に確率比較エンジンです。 サイトによってはAPIを持っているものもありますが、そうでないもののために必要なのです。Python 2.7でscrapyライブラリを使っています。

この質問があまりにオープンエンドだったら申し訳ないです。要するに、私の質問は、このダイナミックデータを使用できるようにスクレイピングするために、どのようにscrapyを使用することができますか? このベッティングオッズデータをリアルタイムでスクレイピングすることができるのでしょうか?

どのように解決するのですか?

Webkit ベースのブラウザ(Google Chrome や Safari など)には、デベロッパーツールが組み込まれています。Chromeの場合、以下のように開くことができます。 Menu->Tools->Developer Tools . その Network タブでは、すべてのリクエストとレスポンスに関するすべての情報を見ることができます。

<イグ

画像の下部には、リクエストにフィルタをかけて XHR - これらは、javascriptのコードによるリクエストです。

ヒント:ログはページをロードするたびにクリアされます。画像の下にある黒い点のボタンはログを保存します。

リクエストとレスポンスを分析した後、ウェブクローラーからこれらのリクエストをシミュレートし、貴重なデータを抽出することができます。多くの場合、HTML を解析するよりも簡単にデータを取得できます。なぜなら、データにはプレゼンテーションロジックが含まれておらず、javascript コードでアクセスできるような形式になっているからです。

Firefoxにも同様の拡張機能があり、その名前は ファイヤバグ . firebugの方がさらに強力だという意見もあるでしょうが、私はwebkitのシンプルさが好きです。