Requests报”requests.exceptions.TooManyRedirects: {redirect message} “的原因以及解决办法

yizhihongxing

问题原因

当使用requests库发送HTTP请求时,服务器可能会返回一个重定向响应。该响应将包含一个新的URL地址,让你向该地址发送下一个请求,以获得要访问的内容。然而,重定向响应的数量是有限制的,当超过预设的最大重定向次数(默认值为30)时,就会抛出“requests.exceptions.TooManyRedirects: {redirect message}”异常。

解决办法

增加重定向次数

可以通过向requests方法传递一个max_redirects的参数来指定重定向的最大次数,如下所示:

import requests

response = requests.get(url, allow_redirects=True, max_redirects=5)

禁用重定向

如果不希望使用重定向,则可以将allow_redirects参数设置为False,禁用请求跟随重定向。这样,如果服务器对请求返回重定向响应,就会在响应中包含重定向的URL地址,而不是发送下一个请求。

import requests

response = requests.get(url, allow_redirects=False)

更新URL地址

当使用requests库时,经常会遇到服务器返回重定向响应时,会出现一些奇怪的URL地址,这些地址可能是需要更新的。因此,你需要手动更新URL地址以解决此类问题。

import requests

response = requests.get(url, allow_redirects=True)
if response.history:
    new_url = response.url

在实际情况中,当服务器返回一个重定向响应时,将会在响应的历史记录(response.history)中记录各个URL地址,最后一个URL地址就是重定向的URL地址(response.url)。

总结

以上就是"requests.exceptions.TooManyRedirects: {redirect message} "的原因及解决办法的完整攻略。你可以通过指定重定向次数,禁用重定向或更新URL地址等方式,解决这个问题。在使用requests库开发项目时,应注意预留足够的调试时间。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Requests报”requests.exceptions.TooManyRedirects: {redirect message} “的原因以及解决办法 - Python技术站

(0)
上一篇 2023年3月19日
下一篇 2023年3月19日

相关文章

合作推广
合作推广
分享本页
返回顶部