解决Exceeded 30 redirects问题的3种方法

Exceeded 30 redirects

网上有许多解决的办法,但是本人试了很多种办法解决,但是都没成功(不是说他们的方法不行,只是不适合我),在这里我把我知道方法说一下

1.添加请求头
#requests带上自己浏览器信息的请求头,默认允许重定向
import requests
headers = {"User-Agent" : "User-Agent:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}
h=requests.get('https://baike.baidu.com',headers=headers)
print(h.request.headers)

不加请求头,requests无法保证与服务器之间的会话,每次连接服务器都被当作一条新请求直接让他跳转,不存在重定向环路的问题。
参考资料: requests关于Exceeded 30 redirects问题得出的结论.

2.禁止重定向
requestData = requests.get(url,headers=header,allow_redirects=False)  # allow_redirects禁止重定向

在这里不建议这么做,重定向的问题根本不在于页面跳转了,而是页面为什么会多次跳转。
参考资料: requests关于Exceeded 30 redirects问题得出的结论.

3.分析url

看一下你是否在使用自己组合的链接进行访问,这是一种零碎页面,此网页有重定向循环
https://www.thenewboston.com/forum/recent_activity.php?page= “ + str(page))
如果有的话加上allow_redirects=False,你需要自己确定要如何处理搜寻器中此类损坏的页面。
参考资料: Web Crawler - TooManyRedirects: Exceeded 30 redirects. (python).
国内好多解决方案都特别肤浅,千篇一律,互相模仿,我的解决方案用的是第三种,国内查了好多资料,没一个能用的,所以建议多去用谷歌解决问题,国外解决bug的能力还是很强的(没有诋毁自己国家的意思,实话实说)

Guess you like

Origin blog.csdn.net/weixin_44388373/article/details/106052403