为了在某个网站中搜索特定主题,我做了一个python的爬虫,使用的是requests。
代码本身走读觉得没有问题,但运行以后得到一个错误:
raise TooManyRedirects('Exceeded {} redirects.'.format(self.max_redirects) response=resp)requests.exceptions.TooManyRedirects: Exceeded 30 redirects.从描述上看,是超过30次重定向,我似乎想不通,网站居然会做出这种丧心病狂的举动(太浪费网页头了啊),为了防止爬虫,也不至于做出这种举动吧,那我们平时浏览怎么没问题呢?
一般碰到这种情况,大家用什么办法解决呢?
因为把网站贴出来,就不能发提问了,我只说是我们经常用到的某个电子论坛(非芯吧客)。
附:用selenium就没有问题,但效率低太多。。。
找到原因了,是防火墙上安全策略引入的,公司里面出口采用旁挂防火墙,实现对流量进行监控,当访问数据不合法(比如有敏感字或者外部调用),会直接定位到一个页面,但这个页面本身也有问题,继续重定位到这个页面,无限循环。。。没办法动网络结构,只好考虑改代码,通过参数allow_redirects=False关闭不合理的重定向,抛弃掉这个访问,获取的数据量虽然减小了,但起码不出错
找到原因了,是防火墙上安全策略引入的,公司里面出口采用旁挂防火墙,实现对流量进行监控,当访问数据不合法(比如有敏感字或者外部调用),会直接定位到一个页面,但这个页面本身也有问题,继续重定位到这个页面,无限循环。。。没办法动网络结构,只好考虑改代码,通过参数allow_redirects=False关闭不合理的重定向,抛弃掉这个访问,获取的数据量虽然减小了,但起码不出错。。。