公司长期需要采集数据,因此经常到找各种代理IP进行测试,由于代理行业鱼龙混杂,各种报价和包装,使得研发难以快速的找到性价比高的产品。因此将产品选择过程中的方法进行了整理以便大家参考:
市面上的产品按照使用方式分为两大类:
1、 网页提取代理
网上名字有API提取代理、动态短效代理、动态混拨、优质代理等,通过HTTP请求URL提取文本,格式一般是IP:PORT,也有一些是支持JSON,这种产品适合程序提取之后存入队列,自建IP池做策略管理,需要进行存活检测、控制有效时间和线程锁定。
2、 认证信息代理
网上名字有爬虫代理、动态转发代理、隧道代理等,是代理服务器自动转(隧道技术),通过配置固定代理域名、端口、用户名和密码直接使用,一般默认每个HTTP请求自动转发。有些产品是定时自动进行IP切换,在一个时间段内所有请求都是相同IP转发。
那么如何快速的选择产品呢,从几个方面作为考虑依据:
1、 目标网站反爬难度
2、 爬虫策略复杂程度
3、 代理IP有效时间
4、 部署是单机还是集群
参考上面的要点,推荐如下:
网站反爬难度 | 爬虫策略 | 有效时间长短 | 单机还是集群 | 代理产品选择 |
---|---|---|---|---|
较难 | 复杂 | 长 | 集群 | 网页提取 |
容易 | 简单 | 短 | 集群 | 认证信息 |
一般采集的网站反爬较多,爬虫程序需要控制IP策略,例如登录、数据采集需要相同IP、控制IP访问频率、部署机器群进行数据采集等这些情况下推荐网页提取代理(又称 API代理),因为提取之后的代理IP,可以通过IP池的策略进行管理、分配和使用。
采集的网站反爬不多,那么建议认证信息代理(又称转发代理、爬虫代理、隧道代理),这种产品是自动实现IP切换和转发,爬虫程序只需要使用代理信息直接发送请求即可,使用快捷方便。
如果不清楚目标的网站反爬情况咋办呢?那就先测试认证信息代理,因为使用简单方便,部分代理厂家还会提供demo,直接复制输入代理信息即可运行,观察爬虫采集情况,如果效果不理想,再调整爬虫策略或者更换代理产品。
如何快速测试找到适合的产品呢?
代理厂家将代理产品进行了各种包装,但是万变不离其宗,根据不同的产品重点关注几个方面:
1、 网页提取代理
(1) 提取IP的单价
(2) IP的有效时间
(3) HTTP请求延迟
(4) 每秒并发
(5) 线路带宽
上面的几个参数一眼就能看明白对吧,肯定是选择价格低、有效时间长、延迟低、每秒并发高、线路带宽高的产品。但有趣的是代理厂家通过包装就能够鱼目混珠啦。以下是三个产品的介绍,大家选择看看那个性价比最好:
A产品 | B产品 | C产品 |
---|---|---|
每10秒提取5个 ;有效时间1-5分钟 ;使用无上限 ;IP白名单无限制;日付22元; | 提取速度不限制;有效时间1-5分钟 ;每日上限1000IP ;IP白名单无限制;日付5元 | 每10秒提取5个 ;有效时间2-10分钟;使用无上限;IP白名单1个;日付28元 |
开始揭晓答案了:
大部分会选择B产品,因为价格最低,并且提取速度不限制,这个看起来就很好,但是这款产品是最贵的,因为每天5元只能提取1000个IP,一个字贵,两个字用不起。
接下来应该选择A,因为价格适中,并且使用无上限,还没有IP白名单的的限制,应该是最适合的吧。
说说C产品吧,一看去是最差的,因为价格最高、还限制ip白名单。
最后我们公司购买了C产品,还是年付合作,为啥会这样,我将结果选择过程整理如下:
B产品首先淘汰,因为最贵,并且IP有效时间也不够长,相同成本下的采集量最低。
A产品看起来很不错,但是这个价格和有效时间下,意味着可发出的请求和IP可用量比C产品减少1倍,性价比就差多了,但是IP白名单不限制这个很好,可以机器集群多开,这样算下来,多跑一台机器,性价比就回来了。因此我们开始也是选择A产品,然后进行测试,发现如果机器增加上去,根本就跑不动,带宽和并发都被限制了,请求延迟高达1秒以上、并发小于10。
接下来是C代理了,由于有效时间长,因此可用IP及请求总量都是最好的,但是限制IP白名单呀,上线测试一下,请求延迟小于300ms、并发超过10以上,采集速度很快,需要机器集群多开咋办?联系客服后每台机器增加一点带宽费用就可以了,算下来相同成本下,采集的数据量是最多的,看看这才是优秀的产品嘛。
通过上面的案例大家知道如何选择了吧。
2、 认证信息代理
(1) HTTP请求延迟
(2) 线路带宽
认证信息代理使用简单也是最容易入坑的,因为参数各家都差不多,一般都是按照每秒并发数进行报价,因此谁家便宜就用谁即可。但是采购经费和采集数量的对比,才能提现性价比。如果要量化对比,就是每秒并发价格与每秒采集数量,而这个参数需要靠请求的延迟和带宽情况测试才能确定。因此一定一定一定要运行测试程序统计代理参数,才能准确比较,而不是简单看报价。
因此采购这类产品的时候,我们直接用程序进行压力测试,按照每秒请求数、请求延迟时间、线路带宽进行综合评测,结合每秒并发报价,就可以选择性价比最高的产品。另外测试过程中还发生了一个有趣的事情,其中一家代理产品,竟然默认开启了数据缓存,对延迟时间造假,对于相同的请求,第一次HTTP请求延迟很高,接下来大量的请求延迟非常低(甚至低于服务器响应时间)的假象,这种情况下会很容易让测试程序被骗,测试的时候采集速度很快,其实返回的都是缓存数据,真实线上运行的时候,速度就很慢,延迟也从100ms变成1000ms以上,同时还会干扰爬虫程序策略,因为目标网站反爬就是返回缓存数据,这样情况下没法判断是代理缓存还是被目前服务器缓存,太坑啦。
最后为了方便大家快速找到适合的产品,我这里提供一份测试程序,可以对代理IP进行延迟、并发的测试,支持网页提取代理和认证信息代理,有需要的可以发我私信。