파이썬 Request Timeout 설정하기

파이썬에서 크롤링할때 Timeout 에러가 발생하는 경우가 있습니다.

 

TimeOut

파이썬의 request에서 사이트를 크롤링 할 때 여러가지 이슈로 Timeout이 발생하게 됩니다. 예를 들어 서버가 응답을 주지 않거나, 아니면 서버에서 차단 당하는 형태 등으로 timeout이 발생하게 됩니다.

 

 

connection이 established 될 때까지 기다리는 시간입니다.


위의 그림을 참고해보면 SYN을 보내고 상대방에게서 ACK가 올 때까지 기다리는 시간을 뜻하는데요. 즉 최초 연결을 하지 못하고 기다리다가 timeout이 생길 수 있습니다..

 

이 외에도 접속후에도 동일한 이슈로 timeout이 발생할 수 있습니다.

 

Request Timeout 처리방법

파이썬 공식문서에 따르면 request는 따로 타임아웃을 정리하고 있지 않습니다.

https://docs.python-requests.org/en/latest/user/advanced/#timeouts

 

Advanced Usage — Requests 2.31.0 documentation

Advanced Usage This document covers some of Requests more advanced features. Session Objects The Session object allows you to persist certain parameters across requests. It also persists cookies across all requests made from the Session instance, and will

docs.python-requests.org

기본적인 문법은 requests.get(주소, timeout=시간) 으로 뒤에 timeout 파라미터만 넣어주면 되는데요.

이렇게 처리하고 except를 이용해서 requests.exceptions.Timeout을 예외처리해주면 됩니다.

except requests.exceptions.Timeout as e:
    print("Timeout Error : ", e)

 

그럼 잘 사용하시기 바랍니다.