最近在批量获取微博数据的过程中会阶段性的报418错误,一开始并没有什么影响,但是长时间报错感觉会消耗任务,还是有点影响。所以就进行了解决问题之路。
因为418第一次遇到,还不了解这个状态码的意思所以百度了下,原来状态码4**表示出错,网站的反爬程序返回的。第一反应是不是代理的原因导致的,所以咨询了使用的亿牛云代理,他们技术通过测试发现跟代理没有关系。所以我对自己的python库的版本进行了检查,发现库的版本有点旧了,于是更新的版本,并且补充上headers,目的是模拟浏览器,欺骗服务器,获取和浏览器一致的内容import requests
url =‘ttps://s.weibo.com/realtime?q=%23’
headers={‘Referer’: ‘ttps://s.weibo.com/realtime?q=%23’,User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36’}
response=requests.get(url, headers=headers,timeout=3)
response
最后访问的结果都显示的是200,那问题就这样解决了。对于爬虫中的状态码我们还是需要多了解下,这样在工作中遇到问题了就能更快更及时的想到应对的办法。若有收获,就点个赞吧