私はスパイラルで広範なクローラを構築しようとしていますが、同時に多数のスパイダーを同時に実行できますが、同時に同じドメインをクロールすることはできません。スクラブで広範囲にクロールする
答えて
複数のスパイダーを同じドメインで実行する目的は何ですか? クロールプロセスを高速化したい、またはスパイダーが異なるロジックを持っていますか?
まず、docsをご覧ください。
settings.py
ファイルでCONCURRENT_REQUESTS = 100
を増やす必要があります。 1つのスパイダーで十分です。スパイダーのロジックが異なる場合は、スパイダーごとに個別のクラスを作成してください。
私はどこから来ているのか分かります。単一のWebサイトごとに制限を遵守しながら、多数のクロールを並行して実行できるように、ドメインごとに分散調整が必要です。これを行うには、クモの間で共有される何か(データベース?)と会話するミドルウェアを開発する必要があります。
このようなシステムの1つはです。
ご覧のとおり、すべてのドメインに「ハード」な仕方で細分化された分散制御をサポートしています。
これはまた、あなたが探しているものと同様のデュープ除去機能を持っています(here参照)。主な相違点は、Item
ではなくデリートされていませんが、これはさらに優れているはずです。
はい、これは私が探していることです。私はしたい1.私のスクレーパーは、ドメインの同じプールを使用してください。2.すべてのスパイダーは、重複してフィルタリングされているスクラップされたアイテムの同じプールにそのアイテムを返します。 3.同じドメイン上でクロールを開始しないようにします。ところで、スクラップクラウドにはこの機能が組み込まれていますか?私は今、彼らのウェブサイトを見た。 – codeer
上記のコメントを更新しました。 – neverlastn
また、必要なものが分散型クローラの場合は、代わりにNutchまたはStormCrawlerを使用できます。どちらも分散クラスタ上で動作するように設計されています。前者はApache Hadoopと後者のApache Stormを使用しています。
- 1. 広範囲なクロール - 広範なクロール時に内部リンクのみを許可する、allowed_domainsのドメインが多すぎる
- 2. 広い範囲で予測する(
- 3. アンドロイドのオートフォーカスzxingの範囲が広い
- 4. sumifs公式を広い範囲に高速に追加する
- 5. 広範囲のデータベースに製品を保存する
- 6. カラム(R)の日付範囲にデータを広げる
- 7. Java3d。どのように視界の範囲を広げる?
- 8. jQuery広範囲に適用されます
- 9. より広い範囲を予測する
- 10. スクラブを使用してデータをクロールする際にシンボルを削除する
- 11. SecureUDIDに誰かが広範囲にテストしましたか?
- 12. 広いクロール - 異なるxpaths - Scrapy
- 13. 1つのベンチマーク内での広範囲の入力の使用
- 14. sedの正規表現の範囲を広げる
- 15. Swift3 - hitTestの到達範囲を広げる
- 16. アクセスの電話番号の範囲を広げる
- 17. 範囲を重複範囲の範囲に分割
- 18. 広範囲の最初の検索で迷路を解決する
- 19. 責任範囲の範囲
- 20. ループセル範囲とクリーン範囲
- 21. 範囲とスコープ範囲
- 22. 範囲シークバー設定範囲
- 23. plotly.jsの範囲範囲
- 24. ループ範囲の範囲
- 25. スクラブ開発用クロール間の認証済みセッションを維持する
- 26. 海底プロットのx軸の範囲が広くなった
- 27. more-pouchdb-changesのより広範囲な実装コード
- 28. 多分 'breaks'は範囲を広げません
- 29. 範囲から範囲内のセルを、別のセルのテキスト値である範囲にコピーする
- 30. 時間範囲を他の時間範囲で分割する
はい異なるドメインで複数のスパイダーを実行したいと思います。質問が不明な場合は申し訳ありません。 CONCURRENT_REQUESTS = 100とCONCURRENT_REQUESTS_PER_IP = 1に設定した場合、これで問題は解決しますか?100種類のスパイダーがそれぞれ独自のドメインをクロールしますか? – codeer
これは同じスパイダーになります。[docs](http://doc.scrapy.org/en/latest/topics/settings.html#concurrent-requests-perip)[+](http: /doc.scrapy.org/en/latest/topics/settings.html#concurrent-requests) –