約 1,000 万ページで実行する予定のマルチスレッド クローラーを作成します。高速化するには、約 10 ~ の異なるページを同時に取得する必要があります。
各クローラー スレッドは異なるプロキシを使用し、結果をキューにプッシュします。反対側には、キューから結果をフェッチし、解析して DB に挿入するワーカーがいくつかあります。
それは正しいアプローチですか?あまりにも多くの結果をキューに保存すると問題が発生しますか? ロックについて心配する必要がありますか?(キューモジュールを使用)。私のニーズに最適な HTTP ライブラリはどれですか? (httplib2/urllib2)。
各スレッドを作成するときに、リクエスト オブジェクトの新しいインスタンスを各スレッドに渡す必要がありますか?それとも、リクエスト オブジェクトを移動してスレッドでその "getPage" 関数を使用する必要がありますか?
ありがとう。