Web API を使用して、Old Bailey Online アーカイブ全体のサブセットを取得しようとしています。
私の問題は、私の実装が遅いだけでなく、サーバーがかなり迅速に (約 10 分) リクエストの処理を停止することです。
現在、urllib3 の開発バージョンを次のように使用しています。
import urllib3
retry = urllib3.util.Retry(total=1000, read=200, connect=200, backoff_factor=0.5)
timeout = urllib3.util.Timeout(connect=2.0, read=4.0)
http=urllib3.PoolManager(retry=retry, timeout=timeout, maxsize=10)
次に、この http プールを使用してすべてのリクエストを実行します。私が選んだ数字はかなりばかげていますが、これまでで最高の 8(
毎年、243 年以上にわたり、さまざまなシナリオで 70 件の同時リクエストを行う必要があります。@shazow ( https://stackoverflow.com/a/24046895/398969に従って python3.4 で動作するように変更) でワーカープールを使用してみました。主にサーバーのタイムアウトと私の無知が原因です。
DNS ルックアップによってかなりの遅延が発生していますか? ドメインがApache仮想ホストであるため、IPを使用できません(または使用できますか?)
スー。本当の質問: 同じサーバーから何十万回も「うまく」タイムリーにダウンロードするにはどうすればよいでしょうか? まだ1日かそこらかかると思います 8)