基友们在玩炉石传说,提出了一个想法
这个项目的第一步就是要到炉石传说卡牌工具页抓取数据
利用爬虫抓数据,一般我就直接上 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代理比较麻烦,后续补坑
这里还看到了另一篇文章,先留着慢慢研究
后续:
经过单独对 待抓取的网页接口、通过该接口获取的待抓取的图片链接 进行测试,发现是那个网页接口会出现连接中断的情况,而图片链接并不会。故而,对网页接口设置了失败重连,就解决了。。。所以,应该不是遭遇反爬