[解決済み】requests.requestにmax_retriesを設定することはできますか?
質問
Pythonのリクエストモジュールはシンプルでエレガントなのですが、1つだけ悩ましいことがあります。 それは リクエスト.exception.ConnectionError のようなメッセージで
Max retries exceeded with url: ...
これは、リクエストが何度もデータへのアクセスを試みることができることを意味します。しかし、この可能性については、ドキュメントのどこにも一言も書かれていません。ソースコードを見ても、デフォルト(おそらく0)の値を変更できるような場所は見つかりませんでした。
では、何らかの方法でリクエストの最大再試行回数を設定することは可能でしょうか?
解決方法は?
それは、根本的な
urllib3
ライブラリが再試行を行います。別の最大再試行回数を設定するには
代替トランスポートアダプタ
:
from requests.adapters import HTTPAdapter
s = requests.Session()
s.mount('http://stackoverflow.com', HTTPAdapter(max_retries=5))
は
max_retries
引数は整数値または
Retry()
オブジェクト
後者では、どのような種類の失敗を再試行するかを細かく制御できます (整数値を
Retry()
接続後のエラーは副作用を引き起こす可能性があるため、デフォルトでは処理されません)。
リクエスト1.2.1より前の古い回答です。 :
は
requests
ライブラリは、これを実際に設定できるようにはしていませんし、またそのつもりもありません (
このプルリクエスト
). 現在 (リクエスト 1.1) では、再試行回数は 0 に設定されています。 もし本当に高い値を設定したい場合は、これをグローバルに設定する必要があります。
import requests
requests.adapters.DEFAULT_RETRIES = 5
この定数は文書化されていません。将来のリリースではこの処理方法が変更される可能性がありますので、ご自分の責任で使用してください。
更新情報
: そして、この
した
バージョン 1.2.1 で変更されました。
を設定するオプションが追加されました。
max_retries
パラメータ
を追加しました。
HTTPAdapter()
クラス
が追加されたため、代替のトランスポートアダプタを使用する必要があります。にもパッチを当てない限り、モンキーパッチのアプローチはもはや機能しません。
HTTPAdapter.__init__()
のデフォルトを変更しました(あまりお勧めできません)。
関連
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】forループを使った辞書の反復処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み] データ型が理解できない
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み】ValueError: xとyは同じサイズでなければならない