私はウェブサイトからいくつかのデータにアクセスしようとしています。私はこの目的のためにPythonのmechanizeとbeautifulsoup4パッケージを使用しています。しかし、私が解析しなければならないページの量は約100,000以上であるため、単一のスレッドで単一のスレッドを実行することは意味がありません。PythonのEventLetパッケージに並行性を持たせようとしましたが、改善は見られませんでした。誰かが私にできること、またはデータ取得プロセスをスピードアップするためにすべきことを提案できますか?
1 に答える
0
ここでも完全に適合するため、この質問に対する私自身の回答を引用します。
特定のタスクについては、マルチプロセッシング ワーカー プールをお勧めします。プールを定義し、使用するプロセスの数 (デフォルトではプロセッサ コアごとに 1 つ) と、各作業単位で実行する関数を指定するだけです。次に、リスト内のすべての作業単位(この場合、これは URL のリストになります)を準備し、それをワーカー プールに渡します。
出力は、元の配列内のすべての作業項目に対するワーカー関数の戻り値のリストになります。マルチプロセッシングの優れた機能はすべてバックグラウンドで実行されます。もちろん、ワーカー プールを操作する方法は他にもありますが、これが私のお気に入りの方法です。
ハッピーマルチプロセッシング!
于 2012-08-01T08:28:51.053 に答える