如何避免/防止Python中的请求出现Max Redirects错误?

时间:2013-06-05 07:22:00

标签: python http web request python-requests

尽量避免Number of Redirects Exceeds 30出现python-requests错误。有什么我可以做的,以避免它,或者它是纯粹的服务器端?我在尝试GET facebook.com时遇到了此错误。

非常感谢!

1 个答案:

答案 0 :(得分:9)

服务器正在重定向循环。您需要弄清楚为什么要经常重定向。

您可以尝试查看允许重定向(设置allow_redirects=False)的内容,然后使用.resolve_redirects() API解析它们:

>>> import requests
>>> url = 'http://httpbin.org/redirect/5'  # redirects 5 times
>>> session = requests.session()
>>> r = session.get(url, allow_redirects=False)
>>> r.headers.get('location')
'/redirect/4'
>>> for redirect in session.resolve_redirects(r, r.request):
...     print redirect.headers.get('location')
... 
/redirect/3
/redirect/2
/redirect/1
/get
None

redirect个对象是正确的回应;打印出这些你需要弄清楚为什么你最终进入重定向循环;也许服务器在标题或正文中提供线索。