爬虫遇到连接中断问题,误以为是反爬

来源:互联网 发布:sql语言的特点 编辑:程序博客网 时间:2024/04/29 09:32

基友们在玩炉石传说,提出了一个想法

这个项目的第一步就是要到炉石传说卡牌工具页抓取数据

利用爬虫抓数据,一般我就直接上 selenium+phantomjs了。后来基友说这个网页是使用了AJAX来翻页,可以看看XHR。然后查了一下,资料点击这里,就开始使用 requests 直接抓数据。

在抓取过程中,会经常遇到 ConnectionError: ('Connection aborted.', error(10054, ''))

甚是蛋疼。。。

查询资料,看到了一些看似可行的方案:
1. head中有一个user-agent每次都换不同的模拟代理
2. 测试最大访问时间短,每秒多少次请求会出现中断,然后sleep(200)毫秒
3. 每次请求中断上一次链接,keep-live=false (没搞懂这里,查了一下资料)
4. 不然就是换IP访问

经过简单的测试:
1. 把访问间隔时间设置较大,通常都能有比较好的表现
2. 若想尽量缩短间隔时间,可以设置多个user-agent
3. 换IP还没尝试,IP代理比较麻烦,后续补坑

这里还看到了另一篇文章,先留着慢慢研究

后续:

经过单独对 待抓取的网页接口、通过该接口获取的待抓取的图片链接 进行测试,发现是那个网页接口会出现连接中断的情况,而图片链接并不会。故而,对网页接口设置了失败重连,就解决了。。。所以,应该不是遭遇反爬

原创粉丝点击