티스토리 뷰
프로그래밍/Python
[Python] requests.exceptions.TooManyRedirects: Exceeded 30 redirects 오류해결
알 수 없는 사용자 2021. 9. 24. 02:23728x90
반응형
urllib2.HTTPError: HTTP Error 301: The HTTP server returned a redirect error that would lead to an infinite loop.
The last 30x error message was:
Moved Permanently
위와 같은 오류라거나 아래와 같은 오류를 경험하신 분이라면 이번에 소개 드릴 해결책으로 해결할 수 있으리라 생각합니다.
Traceback (most recent call last):
...
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
해결법 #1.
아래와 같이 requests 모듈에서 get 함수를 사용할 때 headers 에 user-agent 를 추가하는 방법이 있습니다.
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/605.1.15',
}
response = requests.get(url, headers=headers)
하지만 만약 이미 이렇게 했는데도 안된다고 한다면 아래와 같은 방법을 시도해보세요.
해결법 #2.
아래 방법은 allow_redirects 옵션을 False 로 변경하여 만약 response 결과가 302 (Redirection)이 나온다면 따라가지 말게 한 것입니다.
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/605.1.15',
}
response = requests.get(url, headers=headers, allow_redirects=False)
이 경우에는 Redirection이 무한히 발생하여 최대 Redirection 가능 횟수를 초과했을 때 발생하는 에러입니다. 그래서 일반적인 해결법으로는 allow_redirects 옵션을 False 로 하는 방법이 있는데, 상황에 따라서 redirection이 필요할 때는 True로 바꿔주셔야 할 것입니다. 무한 Redirection을 방지할 때만 False 로 하시면 될 것 같습니다.
첫 번째 해결법은 가끔 가다 웹사이트에서 python 의 user-agent를 차단하는 경우가 있는데 이럴 때 user-agent를 웹브라우저의 것으로 인식하게 하여 정상적인 결과를 얻을 수 있는 경우의 해결법입니다.
728x90
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[python] OSM (openstreetmap) tile 이미지 x,y 와 좌표x, y 변환하기 (0) | 2021.10.05 |
---|---|
[python] 데이터타입을 문자열로 출력하는 방법 (0) | 2021.10.01 |
[Python] 리스트(배열) 순서 거꾸로 뒤집기 (0) | 2021.09.24 |
[Dictionary] 딕셔너리에서 list of key 들이 존재하는 지 확인하는 법 (0) | 2021.09.17 |
[영어인가 한국어인가?] 파이썬으로 문장이 영어인지 한국어인지 구분하기 (0) | 2021.09.16 |
댓글