注册
登录
提问时间:2019/7/20 15:07:23    楼主:未知网友   阅读量:71

有个朋友一直用我们的代理IP服务,突然有一天,他联系我说,站大爷的代理有问题了么  数据不返回了……

我询问他具体错误信息是什么,他说就是返回不了数据,当我询问他访问的具体网站后,用浏览器设置代理IP访问测试是正常的,我告诉他后,他说:但是我程序运行不返回数据嘞。

爬虫策略就是使用代理IP.jpg

我告诉他浏览器设置代理访问网站正常,说明IP是没有问题的,程序代码运行不能返回数据,可能是目标网站的反爬策略升级了,需要调整下爬虫策略,比如并发、访问频率、UA之类的。他说:策略只能是代理IP,如果代理IP都不行,讲其他策略也没用。

这句话对吗,真的是这样吗?我告诉他,策略不仅仅是代理IP,还有其他因素,比如访问次数、访问频率、UA、cookies之类的(不仅限于此),并不是使用了代理IP,就可以高枕无忧了,可以无视目标网站的反爬策略了,可以肆无忌惮的爬取,可以为所欲为,事实上并不可以。代理IP只是一个辅助工具,主要作用是可以让爬虫可以持续稳定的工作下去。单个代理IP也要遵守反爬虫策略,它也一样不能高频率的访问网站,触发了反爬虫策略一样会受到限制,一样不会返回数据或者返回错误的数据。

有人会说,这样的代理IP要来有什么用?确实,单个的代理IP没有多大用,但是大量的代理IP有很有用了。举个例子,目标网站限制的是一个IP访问网站次数24小时内不能超过1000次,访问频率最快10秒一次,那么使用代理IP也要遵守目标网站设定的这个规则,如果访问超过1000次,或者低于10秒的访问频率,代理IP同样会被限制。

那怎么办呢?正确的做法是使用代理IP访问目标网站999次(理想状态,可能更少次数比较好)就切换下一个代理IP,这样就可以避免IP被限制;或者多个代理IP同时使用,这样总体来说也可以达到低于10秒的访问频率而不被限制IP,在遵循目标网站的规则的同时,不影响爬虫的工作效率。

当然,如果代理IP不行,讲其他策略也没用,这后半句是正确的。工欲善其事,必先利其器,器不利,这事没法善。所以,当问题出现时,我们要先判断是代理IP的问题,还是策略的问题,然后再解决问题。如果浏览器设置代理不能正常访问网站,很有可能是代理IP的问题,需要联系服务商协助解决;如果浏览器设置代理是可以正常访问网站,那么代理IP没有被限制,很有可能是策略的问题,需要调整策略。