Skip to content

[已解決][Python] requests.exceptions.TooManyRedirects: Exceeded 30 redirects

Last Updated on 2021-09-05 by Clay

今天當我在使用 Python 中相當有名的 requests 套件爬蟲的時候,本來前一天可以正常執行、下載網頁檔案的程式,突然間出了以下報錯訊息:

requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

這是因為,我們對其發出要求的網站意圖將我們重定向(Redirect)到另外一個網址,而 requests 套件又自動處理了重定向的問題,故導致重定向次數過多而產生報錯。


解決方法

關於重定向的問題,可以從回傳的狀態碼status code)看出端倪。需要將 requests 的請求加上 allow_redirects=False 參數,否則程式在發送請求那裡便會報錯。

r = requests.get(url, cookies=cookies, allow_redirects=False)
print(r.status_code)



Output:

303

而關於重定向的報錯經常會看見以下幾種:

  • 301: 永久性轉移
  • 302: 暫時性轉移
  • 303: ??? (我有點不太確定該怎麼描述,總之我每次碰到 303 都是 cookies 過期)

所以,解決方法就是:檢查網址、檢查 cookies


References


Read More

Tags:

Leave a Reply