私は多くのスクレーパーを作成しましたが、無限スクローラーの処理方法がよくわかりません。最近、ほとんどのウェブサイトなど、Facebook、Pinterest には無限のスクローラーがあります。
3 に答える
(Lattywareが指摘しているように)無限スクロールを使用するほとんどのサイトにも適切なAPIがあり、スクレイピングよりもこれを使用する方が適切なサービスを提供できる可能性があります。
しかし、あなたがこすり落とさなければならないなら...
このようなサイトは、ページの下部に到達したときに、JavaScriptを使用してサイトに追加のコンテンツを要求しています。あなたがする必要があるのはその追加のコンテンツのURLを理解することであり、あなたはそれを取得することができます。必要なURLを見つけるには、スクリプトを調べるか、Firefox Webコンソールを使用するか、デバッグプロキシを使用します。
たとえば、Firefox Webコンソールを開き、Netを除くすべてのフィルターボタンをオフにして、スクレイプするサイトをロードします。ロードされると、すべてのファイルが表示されます。Webコンソールを見ながらページをスクロールすると、追加のリクエストに使用されているURLが表示されます。次に、そのURLを自分でリクエストして、データの形式(おそらくJSON)を確認し、Pythonスクリプトに取り込むことができます。
ajax ソースの URL を見つけるのが最善の方法ですが、サイトによっては面倒な場合があります。QWebKit
または、 fromのようなヘッドレス ブラウザを使用しPyQt
て、DOM ツリーからデータを読み取りながらキーボード イベントを送信することもできます。QWebKit
素晴らしくシンプルなAPIがあります。