2

新しい更新のために毎日 1000 以上の大規模な Web サイトをスクレイピングするツールのアーキテクチャを定義する助けが必要です。

このプロジェクトに Scrapy を使用する予定です。

  • Scrapy が Web サイトごとにプロジェクトを必要とする場合、1000 以上の Web サイトをスクレイピングし、そのデータを Scrapy で 1 つのプロジェクトに保存するにはどうすればよいですか? プロジェクトジェネレーターを追加してみましたが、これでよろしいでしょうか?
  • ウェブサイトが新しいコンテンツで更新されたかどうかを確認して、再度スクレイピングできるようにするにはどうすればよいですか?

ありがとう!

4

2 に答える 2

12

Scrapy は、このプロジェクトに最適です。多くの (数百万の) Web サイトをクロールするための具体的なアドバイスについては、ブロード クロールに関するドキュメントを参照してください。1 つのプロジェクトと 1 つのスパイダーのみを使用する必要があります。プロジェクトを生成しないでください。allowed_domains属性を定義しないか、現在クロールされている一連のドメインに制限されていることを確認してください。各プロセスがサブセットのみをクロールするようにドメインを分割して、クロールを並列化することができます。

スパイダーは、現在のドメイン内のすべてのリンクをたどる必要があります。役立つ場合に備えて、すべてのリンクをたどるスパイダーの例を次に示します。生のhtmlでどのような処理をしたいのかわかりません。サイトごとの深さまたはページ数を制限したい場合があります (たとえば、深さミドルウェアを使用)。

Web サイトの再訪問に関しては、新しい URL を取得するだけのアプローチ方法の例として、 deltafetch ミドルウェアを参照してください。おそらく、それから始めてカスタマイズすることができます。

于 2013-10-28T03:03:35.437 に答える