タイムアウト
サーバーが時間内に応答できないことを防ぐために、外部サーバーに送信されるほとんどのリクエストにはタイムアウト パラメーターを含める必要があります。デフォルトでは、タイムアウト値が明示的に指定されない限り、リクエストは自動的にタイムアウトしません。タイムアウトがないと、コードが数分以上ハングする可能性があります。
接続タイムアウトとは、クライアントがリモート マシン ポートへの接続 (connect() に相当) を認識したときにリクエストが待機する秒数を指します。 TCP パケット再送信ウィンドウのデフォルト サイズは 3 であるため、接続タイムアウトを 3 の倍数よりわずかに大きい値に設定することをお勧めします。
クローラー プロキシ領域では、コードがそこでスタックし、エラーが報告されず、リクエストに対する応答がないというリクエスト タイムアウトの問題がよく発生します。
関連する推奨事項: 「Python ビデオ チュートリアル 」
通常の処理では、requests.get() ステートメントにタイムアウトを追加してリクエスト時間を制限します。
req = requests.get(url, headers=headers, proxies=proxies, timeout=5)
timeout=5 を設定した後も長期的な無応答の問題が依然として存在する場合は、timeout のパラメータを調整できます
次の変更を行った後、問題は解消されます
req = requests.get(url, headers=headers, proxies=proxies, timeout=(3,7))
タプル (3,7) でタイムアウトが渡されます。最初の桁は接続接続のタイムアウト時間、2 桁目は読み取り読み取りのタイムアウト時間です。
タイムアウトの使用中に ValueError エラー メッセージが発生した場合 (次のようなもの: ValueError: タイムアウト値の接続は Timeout(connect=2.0, read=2.0, total=None) でしたが、これは int または float である必要があります。 )、これは Python-requests バージョンです。バージョン 2.4.3-4 のバグにより、リクエストを更新する必要があります
pip install -U requests
以上がリクエストタイムアウトとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。