在这篇文章之前,很多人应该看过很多关于建立代理ip池的文章,然后发现都是坑,不能用。多说点。
不说第一种方法,真的有好几个代理IPs(别问我谁的好,我不知道,我写这篇文章是为了推广我自己写的项目)。
第二,github上的这类项目已经出海了,而且大部分都是,你建好之后,发现爬虫还是爬不动,免费的代理ip根本用不上!好一点的haipproxy,我也用过,但是没有解决根本问题!大多数ip故障太快!而各种错误,爬十页,能成功就是烧香。
那么,为什么免费代理ip不起作用呢?很多人也问,那些ip代理真的有那么多IP吗?
实际上,很多免费的代理IP被扫描出来,扫描IP段、端口和特征码。发现可以用的,也就是代理ip。
代理ip不容易使用,这一般是由于以下原因:1。扫描的代理ip是临时的;2.访问量太大,服务器死了;3.原来不是代理IP;4.有认证;5.它本来就是http的代理,你用它来访问https,当然不行!6.代理异常,连接中断,带宽被污染,并返回错误。
如果不想花钱,只能自己找一个稳定的代理ip,然后使用。而总代理池,他们都是用百度、知乎、豆瓣的网站访问,说明可以用,但是失败了。最多加个分算点什么。
之前看过haipproxy的代码,成功率高的话还得自己写验证。说白了就是在爬虫使用之前,尽量去访问,提高成功率。我觉得意义不大。
以上都是废话,以下是主要的。事实上,一些免费的代理ip是非常稳定的代理服务器,所以这些服务器可以使用很长时间。
在我抓取的免费代理ip中,过滤后剩余ip的访问成功率基本为90%+。
首先,其实最简单的方法就是根据服务器的开放端口来判断。如果服务器有80、3389、3306、22等开放端口,说明服务器上还有其他服务在运行,挂机的概率很小。如果是政府或者学校的服务器,就更稳定了。当然,也可以开放其他端口。
第二,是判断服务器的访问速度,需要访问几个不同的网站才能得到平均值,这样访问速度相对稳定。
第三,代理ip的寿命越长,越稳定。当然,这是在你构建和抓取它之后计算出来的。
第四,重新检测代理类型。通过访问不同的http和https网站,判断代理是http还是https,并进行划分。访问http网站时使用http的代理,https的代理为https访问提供服务,可以提高访问概率。
因此,根据这几点,我重写了一套代理ip池项目。目前我抓取ip 450,长期稳定的ip在6左右。虽然很少,但相当稳定。