• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

python中requests的错误

9604a3b72d92b876 2020-05-14 浏览量:1619

为了在某个网站中搜索特定主题,我做了一个python的爬虫,使用的是requests。

代码本身走读觉得没有问题,但运行以后得到一个错误:

raise TooManyRedirects('Exceeded {} redirects.'.format(self.max_redirects) response=resp)
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
从描述上看,是超过30次重定向,我似乎想不通,网站居然会做出这种丧心病狂的举动(太浪费网页头了啊),为了防止爬虫,也不至于做出这种举动吧,那我们平时浏览怎么没问题呢?

一般碰到这种情况,大家用什么办法解决呢?

因为把网站贴出来,就不能发提问了,我只说是我们经常用到的某个电子论坛(非芯吧客)。


附:用selenium就没有问题,但效率低太多。。。




找到原因了,是防火墙上安全策略引入的,公司里面出口采用旁挂防火墙,实现对流量进行监控,当访问数据不合法(比如有敏感字或者外部调用),会直接定位到一个页面,但这个页面本身也有问题,继续重定位到这个页面,无限循环。。。没办法动网络结构,只好考虑改代码,通过参数allow_redirects=False关闭不合理的重定向,抛弃掉这个访问,获取的数据量虽然减小了,但起码不出错

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:3
  • 这个可能是服务器判断了客户端情况进行的防备处理,你看看你是否进行了浏览器模拟。

  • 这个应该就是某些网站为了防止爬虫做的机制,你也可以看一下网站的html描述,看是否确实有30个以上的重定向

  • 找到原因了,是防火墙上安全策略引入的,公司里面出口采用旁挂防火墙,实现对流量进行监控,当访问数据不合法(比如有敏感字或者外部调用),会直接定位到一个页面,但这个页面本身也有问题,继续重定位到这个页面,无限循环。。。没办法动网络结构,只好考虑改代码,通过参数allow_redirects=False关闭不合理的重定向,抛弃掉这个访问,获取的数据量虽然减小了,但起码不出错。。。


相关问题

问题达人换一批

python中requests的错误