在爬虫中非常普及的一种情况就是需更换ip 大量的网站最简单的操作就是限制单个ip的访问次数和频率, 目前打算完成过的更换技术有7种左右
近期会陆陆续续将代码放上去
1:代理 2:vpn 3:tor 匿名网络 4:多ip的服务器 5:游戏加速器 6:adsl服务器 7:伪造ip
1: 代理部分最简单,大多数的采集框架均提供, 样例代码放在: proxy 文件夹内.
2: vpn 因为相对于代理,vpn具有非常好的稳定性,但是更换的过程比较缓慢,所以适用于跟换次数少,但是网速要求高的.
3: tor 匿名网络,先声明该方法的采集速度是比较慢的,可以考虑你这个请求要到美国到俄罗斯到希腊最后再回来..优点是绝对的匿名 适用于单独请求,网速要求低的情况
4: 在购置服务器的时候可以让服务器具有多个出口ip.该方法,ip极其稳定且高速,但是成本高,
5:游戏加速器纯属个人原创的方式,类似与vpn,特点是高速,ip多,目前部分程序在ip量上和网速上的要求都是只能用这个方式实现
6: adsl 爬虫界的大招,,成本稍微高点,不过ip多-数万,速度快,1-10M.缺点,更换一次ip大概需要10秒钟
7: 这个方法有点凑数的意味,但是目前采集的有个重点网站就是因为只检测声明ip这部分,所以使用该方法实现不用实际更换ip,这样的采集速度极其快,多进程分布式搞起来大概一天3kw的页面. 具体的说就是:请求头中有一个x-forword-for,他的意思是你的请求经过了哪些“透明”代理。部分网站对你的封ip策略是针对你的代理的,那么就是伪造这个字段即可,你可以通过访问:https://httpbin.org/get?show_env=1 来看看自己的请求头。通过安装一个chrome插件 :Modify Headers for Google Chrome 来进行伪造测试