使用VPS拨号服务器解决ip封禁问题
####
现状,
就是爬取数据的时候,单ip是不可能快速获得数据了,
现在常用的ip反爬,就是按照你访问的频率,如果识别到就封你的ip,更多的是封一段时间,比如一小时,比如几天,也有永久封禁,
但是现在大公司,屏蔽ip的成本变得很大,因为有的一个ip,不是一个人在用,而是一个公司,一个小区在用一个ip出口,这样屏蔽成本太大了,
更多的是触发验证码,让你进行人机识别,
目前遇到的比较难搞的反爬虫技术有两个:特别难识别的人机识别验证码–如极验的手势验证,另外就是ip大量的限制,如R网站两次访问就被强制跳转到验证码页面。
针对这个问题,采用爬虫届大招一样的ADSL动态部署起来,但是,要明白用ADSL就意味着是开始拼成本了。不再像是过去随意一台电脑就爱怎么爬怎么爬。
####
ip问题,
ip问题,就涉及到成本问题,
如果不是以爬虫为生的公司,基本不会投入太多成本,
1,使用芝麻代理这种,这种用起来很方便,
https://zhimahttp.com/getapi/
要用高匿名代理,网站看到的不会是你的真实ip,
好处就是使用方便,调他的接口就可以了,
但是成本高,
2,使用vps拨号,
vps拨号服务器,就可以看成云服务器,只是这种不稳定,可能运行几天就会很卡,需要重启,有可能数据还会丢失,
但是我们用作拨号服务器还是可以的,每拨号一次,ip就会更换,
http://www.5jwl.com/ 无极网络,
这种vps拨号,有很多的地区分类,可以只拨号北京,或者某一个地方的,或者全国的,一般拨号还是要大城市的,北京上海的,因为涉及到账号的,会发现你同一个账号,但是ip是全国跳,这就不对了,而且北京上海的用户也是最多的,
配置比较低,但是价格很便宜,
你看一台才每个月100块,你买10台,才一个月1000块,但是10台一次就是获取10个ip,你已经可以一天抓取上千万的数据了,
这个日抓取千万,已经可以了,对于一般的公司来说,
现在是必须要实名认证了,
你买的时候,会让你选择装什么系统,cenos,
然后你买好了,告诉你账号密码,就可以远程登陆了,
买一个厂家,拨号方式可能不一样,所以还是买的时候需要注意问下客服,
这种劣势,就是配制上比较麻烦一点,
####
vps拨号服务器的使用方法,
####
第一种使用方法,
你可以完全把爬虫程序放到上面,一般这种就是小的爬虫,你不需要一天抓几百万,几十万,
这种如果每天爬取几万,可以放到这个机器上跑爬虫,不能放大型的爬虫,因为内存,硬盘不够用,
具体要多久拨号一次,每个网站是不一样的,你要去试,
然后你试出来100次会屏蔽你,那你的爬虫就可以计数,然后就可以重新拨号,
当时抓企查查的时候,每天100万,然后抓取10几天就可以了,
这种一个机器就够了,
适合那种总爬取量几千万的
可以定时把数据往本地拉取,
####
第二种使用方法
如果你只有一个机器,但是不想把这个爬虫放到这个机器上,因为比较麻烦,还要按照python这些,
那就要把这个vps拨号服务器,变成一个代理服务器,
这样你需要自己搭建一下,
vps服务器上,可以使用tinyproxy,或者spuid软件,作为http代理服务器,
vps服务器一般都是centos的,
然后你的python程序就可以调这个代理服务器,就可以切换ip,抓取数据了,
但是一定要注意,现在很多厂商已经不支持,把vps服务器搭建成为代理服务器了,可能是政策原因,买之前一定要问清楚,
http://www.sunnet365.com/ 这家厂商还支持
把vps服务器搭建成为代理服务器的操作:
第一步,安装python3,因为centos,只有python2
第二步,安装tinyproxy
然后后面搭建好了之后,怎么使用呢?其实就是如果管理这种代理服务器,
第一种管理方法:使用一个固定ip的服务器,使用客户端和服务端的思想来管理,
你要远程调用这个代理服务器,你就要知道这个ip和端口,
所以你怎么知道呢?
假设你有3台vps代理服务器,如果管理呢?
需要有一个固定ip的服务器,然后其他的代理服务器上报这个ip到固定服务器,
各个服务器之间的通信,可以使用socket通信,也可以使用web编程,
注意这个固定ip的服务器,必须要稳定,质量要好,可以使用阿里服务器来担任这个固定ip服务器,然后就可以作为服务端,买最低配的就行,一个月大概几十块钱,
其他的代理服务器作为客户端,作为通信,
第二种管理方法:使用dns服务器,来解析代理服务器的域名,获得ip,
可以到阿里买域名,就是几块钱,但是是有时效的,需要续费才可以维持这个域名,
然后把域名配置上,
原理就是域名可以解析出ip,需要把每一个机器都配置一个域名,可以是子域名,
如果实现?
还是需要一个第三方的dns服务器,可以使用阿里云,
因为我们要马上解析出来结果,
现在也有免费的dns解析服务器,但是这个解析的时间很长,效率太低,
如果使用dns服务器解析域名,
调用dns服务商提供的api,
需要拨号之后,向dns服务器上报
###
所以你看到了,
使用vps拨号服务器,的确比较麻烦,如果有钱的话,当然还是使用芝麻代理这样的,直接调用接口,方便,快捷,
####