31

私は多くのスクレーパーを作成しましたが、無限スクローラーの処理方法がよくわかりません。最近、ほとんどのウェブサイトなど、Facebook、Pinterest には無限のスクローラーがあります。

4

3 に答える 3

26

(Lattywareが指摘しているように)無限スクロールを使用するほとんどのサイトにも適切なAPIがあり、スクレイピングよりもこれを使用する方が適切なサービスを提供できる可能性があります。

しかし、あなたがこすり落とさなければならないなら...

このようなサイトは、ページの下部に到達したときに、JavaScriptを使用してサイトに追加のコンテンツを要求しています。あなたがする必要があるのはその追加のコンテンツのURLを理解することであり、あなたはそれを取得することができます。必要なURLを見つけるには、スクリプトを調べるか、Firefox Webコンソールを使用するか、デバッグプロキシを使用します。

たとえば、Firefox Webコンソールを開き、Netを除くすべてのフィルターボタンをオフにして、スクレイプするサイトをロードします。ロードされると、すべてのファイルが表示されます。Webコンソールを見ながらページをスクロールすると、追加のリクエストに使用されているURLが表示されます。次に、そのURLを自分でリクエストして、データの形式(おそらくJSON)を確認し、Pythonスクリプトに取り込むことができます。

于 2012-09-20T19:57:52.780 に答える
1

ajax ソースの URL を見つけるのが最善の方法ですが、サイトによっては面倒な場合があります。QWebKitまたは、 fromのようなヘッドレス ブラウザを使用しPyQtて、DOM ツリーからデータを読み取りながらキーボード イベントを送信することもできます。QWebKit素晴らしくシンプルなAPIがあります。

于 2012-09-21T11:37:32.627 に答える