2

Python の Urllib2 ライブラリを使用して、サーバーから URL のリストを取得しているとします。1ページを取得するのに約5秒かかり、収集したいすべてのページを完了するには長い時間がかかることに気付きました.

その5秒で考えています。ほとんどの時間はサーバー側で費やされていたので、スレッド ライブラリの使用を開始できるのではないかと考えています。この場合に 5 つのスレッドがあるとすると、平均時間が大幅に増加する可能性があります。各ページでおそらく1〜2秒です。(サーバーが少しビジーになる可能性があります)。スレッドの数を最適化して、サーバーを過度にプッシュせずに正当な速度を得るにはどうすればよいでしょうか。

ありがとう!

更新: スレッドの数を 1 つずつ増やし、100 個の URL をスクレイピングするのに費やした合計時間 (単位: 分) を監視しました。スレッド数を 2 に変更すると合計時間が劇的に減少し、スレッド数を増やすと減少し続けることが判明しましたが、スレッド化による「改善」はますます明白ではなくなりました。(スレッドを構築しすぎると、合計時間は跳ね返ります)これは私が収集したWebサーバーの特定のケースにすぎないことはわかっていますが、スレッドの力を示すためだけに共有することにしました。ある日。

ここに画像の説明を入力

4

2 に答える 2

0

ここに注意事項があります。私は、IIS のやや「古い」リリースを搭載した多数のサーバーに遭遇しました。リクエスト間に 1 秒の遅延がない場合、リクエストを処理しないことがよくあります。

于 2013-09-12T22:09:00.893 に答える