听说过爬虫的人应该都知道,抓的网站和数据多了,如果爬虫抓取速度过快,很多网站防爬机制总是会碰上的,几乎用的同一招就是封 IP 。解决方案有2个:
1、同一IP,放慢速度(爬取速度慢)
2、使用 动态ip 访问(推荐)
第一种方案需要的就是时间和速度,来换取数据,但是一般情况下我们的时间是是有限的,理想情况下是用最短的时间获取最多的数据。所以第二种方案是推荐的,那么从哪里能找到这么多动态ip呢?
寻找代理
程序不懂的时候就去寻找,google、百度,输入关键字:免费动态ip,打开后观察发现,几乎都是一个列表页。但是仔细观察就会发现,每个网站提供的免费IP还是有限的,用了之后就会发现,有的已经没有用了,很多都是付费的。只需要用搜索引擎去找免费IP,每个网站提供几十或几百个,假如10家网站,那加在一起也有几百到几千个IP。可以记录下来这些网站,用程序把IP抓过来就好了,做起来还是有点麻烦的。
测试代理
通过刚才的方式,应该可以获得几百或上千的动态ip了。IP就是免费的吗?当然不是,这些代理中有很多事已经没有用了。如何判断哪些代理是有效,哪些是不可用的呢?
挂上这些代理,再去找一个稳定的网站,如果可以正常访问就是可用的,不能访问的不就是已经没有用了。
当然,这种方式只是为了演示方便,实际最好的方式是:用多线程方式,使用代理去访问某个网站,然后输出可用的代理。这样做能最快速的找出可用代理。
现在有腾讯、新浪、网易、搜狐和Google提供 IP地址查询 API,但是腾讯、新浪和网易是能找得到的,Google要用GoogleMaps,腾讯提供的是JavaScript,网易提供的是XML,新浪的格式比较多,不管是JavaScript调用还是PHP调用都要转换一下编码,要不然就是乱码。但是如果一次性查询好多个IP,用网站的API来查找是很慢的,不管是用PHP解析XML还是file_get_contents函数获取内容,查询10次以上会变得非常缓慢,还可能会超时间。
普通IP定位API根据IP返回的大概位置信息的http,支持多种语言调用,如C#、C++、Java等,即通过发送HTTP/HTTPS请求,返回JSON格式的位置数据(包括经纬度信息、地址信息等)。
这种借口是免费的,但是先申请密钥(AK)才可使用。每个开发者帐号每天使用的次数是有规定的。若需更多的使用次数,请完成开发者认证以获取更高配额和更及时的技术支持。所谓高质量动态ip,必须要具体3个特点:A.高匿名,B.私密性,C.纯净资源;
虽然说购买到高质量动态ip资源非常容易,毕竟这些年动态ip市场的发展越来越快,各种各样的动态ip都能够满足人们各类的需求,无论是工作所需还是日常生活无一不例外。但是作为消费者来说,寻找一种产品的时候我们都想找到性价比最高的同时也最适合自己的产品,这个就比较难了。
不过动态ip资源市场上也不乏拥有这样的http动态ip,就拿动态ip来说,这种软件,它不仅适合大多数人的消费观,而且还能为人们提供相应的高质量动态ip资源。最主要的是这个软件按照使用次数来收费,更加划算更适合大众。
653
90