Programming/Python
파이썬 Request Timeout 설정하기
remake
2024. 3. 12. 18:40
파이썬에서 크롤링할때 Timeout 에러가 발생하는 경우가 있습니다.
TimeOut
파이썬의 request에서 사이트를 크롤링 할 때 여러가지 이슈로 Timeout이 발생하게 됩니다. 예를 들어 서버가 응답을 주지 않거나, 아니면 서버에서 차단 당하는 형태 등으로 timeout이 발생하게 됩니다.
connection이 established 될 때까지 기다리는 시간입니다.
위의 그림을 참고해보면 SYN을 보내고 상대방에게서 ACK가 올 때까지 기다리는 시간을 뜻하는데요. 즉 최초 연결을 하지 못하고 기다리다가 timeout이 생길 수 있습니다..
이 외에도 접속후에도 동일한 이슈로 timeout이 발생할 수 있습니다.
Request Timeout 처리방법
파이썬 공식문서에 따르면 request는 따로 타임아웃을 정리하고 있지 않습니다.
https://docs.python-requests.org/en/latest/user/advanced/#timeouts
기본적인 문법은 requests.get(주소, timeout=시간) 으로 뒤에 timeout 파라미터만 넣어주면 되는데요.
이렇게 처리하고 except를 이용해서 requests.exceptions.Timeout을 예외처리해주면 됩니다.
except requests.exceptions.Timeout as e:
print("Timeout Error : ", e)
그럼 잘 사용하시기 바랍니다.