Timeout(timeout)
서버가 제 시간에 응답하지 못하는 것을 방지하려면 외부 서버로 전송되는 대부분의 요청에 timeout 매개변수를 전달해야 합니다. 기본적으로 시간 초과 값이 명시적으로 지정되지 않는 한 요청은 자동으로 시간 초과되지 않습니다. 시간 초과가 없으면 코드가 몇 분 이상 중단될 수 있습니다.
연결 시간 초과는 클라이언트가 원격 시스템 포트(connect()에 해당)에 연결할 때 요청이 대기하는 시간(초)을 나타냅니다. TCP 패킷 재전송 창의 기본 크기는 3이므로 연결 시간 제한을 3의 배수보다 약간 큰 값으로 설정하는 것이 좋습니다.
크롤러 프록시 영역에서는 요청 시간 초과 문제가 자주 발생합니다. 코드가 멈춰 있고 오류가 보고되지 않으며 요청에 대한 응답이 없습니다.
관련 권장 사항: "Python Video Tutorial"
일반적인 처리는 요청 시간을 제한하기 위해 request.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))
timeout이 경과됩니다. 튜플 (3, 7) 첫 번째 숫자는 연결 연결의 시간 초과 시간이고 두 번째 숫자는 읽기 읽기의 시간 초과 시간입니다.
시간 초과 사용 중에 ValueError 오류 메시지가 표시되는 경우(유사: ValueError : 연결 시간 초과 값은 Timeout(connect=2.0, read=2.0, total=None)이지만 int 또는 float여야 합니다. ) 이는 python-requests 버전 2.4.3-4의 버그입니다. 업데이트 요청
pip install -U requests
위 내용은 요청 시간 초과는 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!