您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python请求:requests.exceptions.TooManyRedirects:超过30个重定向

Python请求:requests.exceptions.TooManyRedirects:超过30个重定向

Amazon会将您的请求http://www.amazon.in/b?ie=UTF8&node=976419031重定向http://www.amazon.in/electronics/b?ie=UTF8&node=976419031,然后将其重定向到,之后您进入一个循环:

>>> loc = url
>>> seen = set()
>>> while True:
...     r = requests.get(loc, allow_redirects=False)
...     loc = r.headers['location']
...     if loc in seen: break
...     seen.add(loc)
...     print loc
... 
http://www.amazon.in/b?ie=UTF8&node=976419031
http://www.amazon.in/electronics/b?ie=UTF8&node=976419031
>>> loc
http://www.amazon.in/b?ie=UTF8&node=976419031

因此,您的原始URL A不会重定向任何新的URL B,后者会重定向到C,它会重定向到B,依此类推。

显然,Amazon基于User-Agent标头执行此操作,此时,它设置了一个cookie,随后的请求应将其发送回去。以下作品:

>>> s = requests.Session()
>>> s.headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'
>>> r = s.get(url)
>>> r
<Response [200]>

这创建了一个会话(为了易于重用和cookie持久性),以及一个Chrome用户代理字符串的副本。请求成功(返回200响应)。

python 2022/1/1 18:36:11 有246人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶