数据采集项目中常见爬虫代理测试分析
淘宝、百度找一遍,发现HTTP代理、爬虫代理、爬虫IP的产品一大堆参差不齐,只能再动手找几家看起来还行的作对比测试,现将各种产品及测试方法整理发出来,给需要采集数据的朋友参考下:
一、免费代理(超低收费)
完全免费的就不用测试了,基本上已经是万人骑,浪费时间,基础的连通性都有问题。其他低收费的比较便宜,1元几千ip随意用,来源就是对程序不断扫描出来的公开或半公开(未加密)的代理,网络稳定性差,延迟高,导致程序运行不稳定,要用这种代理,除了要做IP池管理,还要做代理IP失效实时检查,并且带宽极不稳定。找了几家测试,稳定性太差,连测试结果都做不出来,直接pass。
二、付费代理
付费代理产品也不少,各家都号称是私密家庭代理IP,都号称自营线路,关键哪里来这么多家庭IP???了解一翻之后,总体来说就两大类产品形态:
(1)URL提取文本的代理(简称API代理)
行话是API代理(虽然不知道为啥叫API,手动狗头),通过URL定期请求(一般从1秒-60秒间隔都有),查询获取代理信息列表,一般格式是IP:PORT,有些还带用户名和密码,使用方法差不多。程序需要定期提取代理ip信息,并且做代理ip队列管理,检测ip连通性,同时做好ip有效时间管理(有些厂家会给出代理IP时间,但是不太准确),数据采集线程运行的时候,定期从代理ip队列提取使用。这个产品使用起来稍微麻烦一点,需要做一个简单的ip池维护,当然如果要做策略比较方便管理。
(2) 动态隧道代理(简称爬虫代理)
这产品的别称更多,有爬虫代理、隧道代理、动态转发等等,和api代理的区别是不需要定期从URL接口获取代理信息,可以一次性从后台提取然后配置到代码使用,爬虫程序只与一台代理服务器连接,代理服务器自动进行代理ip切换,一般是按照每个http请求自动切换一个代理ip,有些产品能照session甚至自定义ip切换。动态隧道代理使用方便,理论上爬虫程序和代理服务器之间长链接不断开,其他的都交给代理服务器做好处理。分别对两种产品各选几家有代表性的产品做测试,首先测试URL提取文本的代理(API代理),厂家有
代理厂家产品类型官方网站
阿布云代理 https://www.abuyun.com/
专业版 动态版 经典版
亿牛云代理 https://www.16yun.cn
动态短效 动态混拨 优质代理
爬虫代理标准版 http://h.zhimaruanjian.com/
芝麻HTTP代理默认版
讯代理 http://www.xdaili.cn
优质代理 混拨代理 独享代理 动态转发
蘑菇代理 http://www.moguproxy.com/
API私密代理 隧道转发代理
快代理 https://www.kuaidaili.com
开放代理VIP套餐
站大爷代理 http://ip.zdaye.com
短效优质代理
一手私密代理
独享IP池代理
太阳http代理 http://www.taiyangruanjian.com
默认套餐
蚂蚁代理 http://www.mayidaili.com/
高质量动态代理
厂家说明:
从产品形态上看:亿牛云代理、讯代理、蘑菇代理3家厂家同时具备API代理产品和爬虫代理;芝麻 HTTP 代理、太阳http代理只有API代理,不同的套餐仅是使用时长的区别,代理质量本身没有差别;阿布云代理、蚂蚁代理只有爬虫代理。
测评目标:
在同类产品中,根据不同厂家产品的IP有效率、代理时延、稳定性、价格、使用安全性、调取频率等条件进行一一说明
IP有效率
可用率就是提取的这些代理中可以正常使用的比率。假如我们无法使用这个代理请求某个网站或者访问超时,那么就代表这个代理不可用,在这里我的测试样本数量为500个,即提取500 个代理,看看里面可用的比率有多少。
代理时延
代理IP的时延可以反映该IP的响应时间,即计算使用这个代理请求目标网站整个流程完成后总共需要耗费的时长。时间越短,证明代理的质量越好,这里提取指定数量代理数量,统计出有效的代理并计算响应时间的平均值。
代理稳定性
我们在进行代理调用过程中,相同的代理IP在他的存活周期内,我们希望是持续稳定可用的,不能当前调用响应很快,过一会再调用响应就很慢,尤其一些业务需要在短时间内就要完成整个爬虫流程的,这也势必会影响我们的爬虫效率。
价格
如果一家代理不论是代理质量还是稳定性都特别不错,但价格非常高,这也是不太容易接受的。
使用安全性
如果代理API不小心泄露出去了导致他人盗用,不仅会对我们的代理质量产生影响,另一方面也会产生安全隐患,对盗用代理开展的业务不能得到正常监管。
调取频率
部份代理产品在 API 调用提取代理时会限制调取频率,有的代理产品也会限制请求频率,这些限制也或多或少都会影响我们的爬虫效率,这部份条件我们也需要测试。
测试平台(阿里云主机)
参数名参数值
系统版本Ubuntu 16.04.4 LTS
内核版本Linux 4.4.0-62-generic
CPU核心2核
内存4G
带宽100M
Python版本Python 2.7.12
测试链接
测试链接均为各厂家提供的空闲链接,我理解为测试链接的使用效果会略好于正式开通的代理链接(厂家给出的测试链接一般会是带宽比较富余的链接);访问目标网站选用百度搜索页面
超时设置
测试过程中不能避免代理请求超时的问题,所以我们需要设置一个超时时间,我们设置为10秒,使用代理请求百度,如果10秒还没有得到响应,就视该代理为无效。
测试数量
测试链接需要提取的代理数量,对于代理的响应时间测试我们提取数量为500,即每个产品套餐获取500 个代理进行测试。
测试逻辑
1、主进程获取代理列表
2、多进程+Gevent对代理进行测试
3、主进程汇总统计结果
测试结果样例如下图:
样例说明:
总共提取500个代理信息进行测试,成功500个,故IP有效率为100%;
500个代理信息,总计237个不重复IP量,其中C段IP池128个,B段IP池38个
500个代理信息,最大时延5112ms,最小89ms,平均130ms
对于代理稳定性的测试,我们采取的测试方法是:反复提取相同的代理IP,每次等待10秒后再重复发起请求,持续60秒,统计最终的平均时延。如下图:
如红框内所示,相同的代理信息,第一次使用是160ms的时延,10s后再次提取使用则是505ms的时延。
测评结果:
说明:
1、稳定性测试实为在代理信息的存活周期内,每等待10秒后,用相同的代理信息去重复请求目标网站持续60秒,以检验代理IP的质量是否稳定持续可用,比率为1,说明前后时延相同,比率越大,说明后面请求的时延越大。
2、阿布云的隧道代理、亿牛云的爬虫代理和讯代理的动态转发都是动态隧道代理,即代理信息为隧道IP+端口号,不同的端口对应不同的外网IP,自动实现代理IP切换,因此代理时延小而且稳定,缺点就是IP有效时间较短,不太方便做管理策略。
3、亿牛云的动态混拨、优质代理、爬虫代理标准版都是业务独享,因此具体业务采集的效果应该会更好,但是对方要求备注业务网站。
4、站大爷、蘑菇代理连续测试不稳定,出现延迟较高的情况。
5、蚂蚁代理客服经常联系不上,回复很慢,估计是一个人做的。
6、芝麻HTTP代理所有套餐都是限量套餐,单个订单每天使用代理量最大700个,长期采集成本较高
IP可用率
第一梯队阿布云经典版、亿牛云动态短效、亿牛云动态混拨、亿牛云爬虫代理标准版、讯代理独享代理、讯代理动态转发、蚂蚁代理高质量动态代理大于99%
第二梯队阿布云专业版、阿布云动态版、亿牛云优质代理、芝麻http代理默认版、讯代理优质代理、讯代理混拨代理、蘑菇代理API私密代理、站大爷代理所有版本大于90%小于99%
第三梯队太阳http代理默认套餐、蘑菇代理隧道转发代理大于50%小于90%
第四梯队快代理小于50%
代理时延及稳定性
第一梯队阿布云代理经典版、亿牛云代理动态混拨、亿牛云代理爬虫代理标准版、芝麻http代理默认版、讯代理独享代理代理总时延120ms以内
第二梯队阿布云专业版、亿牛云代理优质代理、讯代理优质代理、讯代理混拨代理、讯代理动态转发、站大爷代理短效优质代理、站大爷一手私密代理、蚂蚁代理高质量动态代理代理总时延200ms以内
第三梯队蘑菇代理所有版本、站大爷代理独享IP池代理、太阳http代理代理总时延200ms以上
套餐价格
按照包月的价格,我们统一对比如下:
级别套餐描述
第一梯队阿布云经典版、亿牛云代理优质代理、讯代理混拨代理、站大爷代理短效优质代理、站大爷代理一手私密代理、站大爷独享IP池代理包月大于500
第二梯队阿布云专业版、阿布云动态版、蘑菇代理隧道转发代理包月大于400,小于500
第三梯队亿牛云代理动态混拨、亿牛云代理爬虫代理标准版、芝麻http代理包月大于300,小于400
第四梯队讯代理优质代理、讯代理独享代理、快代理包月大于200,小于300
第五梯队亿牛云代理动态短效、蘑菇代理API私密代理、太阳http代理包月小于200
安全性
对于安全性,目前主流两种访问方式:
1、 绑定白名单才能使用代理:
亿牛云动态短效、亿牛云优质代理、亿牛云动态混拨、讯代理优质代理、讯代理混拨代理、讯代理独享代理,站大爷所有代理、太阳 HTTP 代理、蘑菇API私密代理、快代理
2、 需要提供密码验证才能使用代理
阿布云所有代理、亿牛云爬虫代理标准版、讯代理动态转发、蚂蚁代理高质量动态代理、蘑菇代理隧道转发代理、站大爷所有代理
从统计看,各商家代理产品都支持至少其中一种使用方式。站大爷代理产品是即需要白名单又需要密码认证才能使用;不过在实际使用中,这种方式比较麻烦,支持其中一种方法即可。
蘑菇代理添加白名单限制后无效,客服说是为防止用户忘记添加白名单后导致API链接挂起,所以部份服务器未添加白名单功能。
另外在测试中发现,通过API修改白名单属于比较实用的功能,目前亿牛云、讯代理的支持接口最完善。
调取频率
备注:
为了保证设备的正常负载及更好的代理质量,商家普遍都限制了提取频率。
综合评估
根据各个代理厂家产品的IP可用率、代理时长、稳定性、价格、安全性等后,最后统计如下:
根据统计结果:
API代理比较推荐的有:讯代理、亿牛云、芝麻代理
动态隧道代理(又称为爬虫代理/隧道代理/动态转发/动态版,表中黑体字部份)比较推荐的有:讯代理、亿牛云、蚂蚁代理
此测评结果仅反映各代理厂商当前的产品状态,随着互联网环境的变化和用户的不断应用深入,各厂商的产品丰富度、产品性能、产品价格都会有所调整。仅以此希望能够帮助大家在选购代理时有所建议。
网友评论