파이썬에서 크롤링할때 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)
그럼 잘 사용하시기 바랍니다.
'Programming > Python' 카테고리의 다른 글
파이썬 *로 트리 만들기 - Print 활용하기 (0) | 2024.03.21 |
---|---|
파이썬 엑셀 저장시 여러 시트 저장 및 열 넓이 조정하기 (0) | 2024.03.18 |
네이버 뉴스 API로 한번에 크롤링하기 (0) | 2024.03.11 |
파이썬 텔레그램 botfather 챗봇(chatbot) 설정하기 (0) | 2024.03.05 |
youtube API 설정하기 (0) | 2024.02.28 |