複数のページを持つ Web サイトをクロールしたいのですが、ページ番号をクリックすると動的に読み込まれます。スクリーン スクレイピングの方法は?
つまり、URL が href として存在しないか、他のページにクロールする方法はありませんか?
誰かがこれについて私を助けてくれたら素晴らしいでしょう。
PS:別のページをクリックしても URL は変わりません。
複数のページを持つ Web サイトをクロールしたいのですが、ページ番号をクリックすると動的に読み込まれます。スクリーン スクレイピングの方法は?
つまり、URL が href として存在しないか、他のページにクロールする方法はありませんか?
誰かがこれについて私を助けてくれたら素晴らしいでしょう。
PS:別のページをクリックしても URL は変わりません。
Ghost.pyも考慮する必要があります。これにより、任意の JavaScript コマンドを実行し、フォームに入力し、スナップショットを非常に迅速に取得できるようになります。
Google Chrome を使用している場合は
network->headers
、開発者ツールで動的に呼び出されている URL を確認できます。
それに基づいて、それがGET
またはPOST
リクエストであるかどうかを識別できます。
リクエストの場合はGET
、URL からすぐにパラメーターを見つけることができます。
リクエストの場合は
、開発者ツールPOST
からパラメーターを見つけることができます。form data
network->headers
この投稿は python と web-crawler でタグ付けされているため、Beautiful Soup について言及する必要があります: http://www.crummy.com/software/BeautifulSoup/
ドキュメントはこちら: http://www.crummy.com/software/BeautifulSoup/bs3/download/2.x/documentation.html
HTML の代わりに JavaScript コードで必要なデータを探すことができます。これは通常は面倒ですが、正規表現を使用すると楽しいことができます。
あるいは、 splinterなどのブラウザー テスト ライブラリの一部は、スクレイピングする前に、firefox や chrome などの実際のブラウザーにページをロードすることによって機能します。ブラウザがインストールされているマシンでこれを実行している場合、これらのいずれかが機能します。
gevent を使用してもかまわない場合。GRobotも良い選択です。
これは ajax ページネーションであるため ( mechanizeを使用しても)、簡単にはできません。代わりに、ページのソース ファイルを開き、ajax ページネーションに使用される URL リクエストが何であるかを調べてください。次に、偽のリクエストを作成し、返されたデータを独自の方法で処理できます