1. ホーム
  2. python

Pythonのリクエストで "Max retries exceeded with url "というエラーが発生する。

2022-02-10 04:46:43
<パス

今日、Pythonのウェブクローラーを書いていて、以下のようなエラー仕様が報告される問題に遭遇しました。

HTTPConnectionPool(host='dds.cr.usgs.gov', port=80): Max retries exceeded with url: /ltaauth//sno18/ops/l1/2016/138/037/ LC81380372016038LGN00.tar.gz?id=stfb9e0bgrpmc4j9lcg45ikrj1&iid=LC81380372016038LGN00&did=227966479&ver=production ( Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x105b9d210>: Failed to establish a new connection: [Errno 65] No route to host',))


複数のレビューで原因が判明 閉じていないhttp接続が多すぎることが原因 .

解決策

1. リトライ接続数を増やす

  requests.adapters.DEFAULT_RETRIES = 5

2. 冗長な接続を閉じる

requests は urllib3 ライブラリを使用しており、デフォルトの http 接続は keep-alive で、これを閉じるために requests は False に設定されています。

操作方法

s = requests.session()
  s.keep_alive = False