序
随着大数据时代的到来,爬虫已经成为获取数据不可或缺的方式。做过爬虫的人一定深有体会。抓取时,IP被网站无故屏蔽。毕竟各大网站都不希望自己的数据被轻易爬走。
对于爬虫来说,为了解决IP封禁的问题,一个有效的方法就是使用代理,可以让爬虫伪装自己的真实IP。如果大量使用随机代理进行抓取,那么网站就不会知道我们的爬虫一直在抓取,从而有效解决了反抓取的问题。
那么问题来了,我该用什么药剂呢?这里的代理一般是HTTP代理,主要用于数据抓取。现在打开搜索引擎,搜索HTTP代理。太多品牌是免费和付费的。应该如何选择?看完这篇文章,你心里一定有答案了。
对于自由球员,想都别想。可用率能超过10%已经是万幸了。真正靠谱的代理商还是要花钱买的,那么这么多中哪家的可用率高呢?哪个反应速度快?哪个更稳?哪个性价比更高?因此,我对市面上几款流行的支付代理的可用性、抓取速度、抓取稳定性、价格、安全性、请求限制等做了详细的评测。看看哪个更强!
评估范围
自由无约的职业队员
这里我主要测试付费代理,免费代理的可用率太低,几乎不超过10%。但为了对比,我选择了Xici free agents进行测试。
付费代理
支付代理我选取了站叔、芝麻HTTP代理、孙HTTP代理、新闻代理、快递代理、蘑菇代理、阿布云代理、全网代理、云代理、大象代理进行对比评测,购买了他们不同等级的套餐使用相同的网络环境进行评测。详情如下:
嗯,上面的套餐我都买了,为了下面的评价。
评价目标
本次测评主要分析代理的可用性、响应速度、稳定性、价格、安全性、使用频率等因素,我们将一一讲解。
利用率
可用性是这些代理可以正常使用的比率。如果我们无法使用此代理请求网站或访问超时,这意味着此代理不可用。这里我的测试样本量是500,也就是抽取500个代理,看看可用的比例是多少。
响应速度
响应速度可以通过花费的时间来衡量,即使用这个代理请求网站直到获得响应所花费的时间。时间越短,证明代理的响应速度越快。这里还有500个样品。计算时,只计算正常可用的座席代表,并计算平均花费的时间。
稳定性
因为我们在抓取的时候需要使用大量的代理,如果一个代理响应非常快,很快就会得到响应,而下一个请求使用的代理很慢,需要30秒才能得到响应,这必然会影响抓取效率,所以我们需要看商家提供的这些代理的稳定性如何,但是这个不能特别快,下一个也不能慢。所以这里我们需要计算耗时的方差。方差越大,稳定性越差。
价格
当然,价格是需要考虑的因素。如果一个代理的响应速度和稳定性特别好,但是价格非常非常高,那也是无法接受的。
安全
这确实是一个需要考虑的因素。比如代理提取的API一旦不小心泄露出去,别人会随意用我们的API提取代理,但是被消费的是我们的包。另外,一旦别人通过某种手段获取了我们代理商的名单,而这些代理商又没有安全验证,也会导致别人暗中使用我们的代理商。在生产环境中,这方面需要特别注意。
使用频率
有些代理包在API调用提取代理时有频率限制,有些则会限制请求频率。这些因素或多或少都会影响爬虫的效率,我们也需要把这些因素考虑进去。
评价标准
做标准评测,必须在标准评测环境下进行,尽量排除一些杂波干扰,比如网络波动、传输延迟等一系列影响。
选择主机
因为我的个人笔记本使用WiFi上网,可能会有网络波动,实际带宽其实没有控制好,所以不适合标准评测。评测需要在稳定的网络条件下进行,多个代理的评测环境必须相同。这里我选择了一台腾讯云主机作为测试,主机配置如下:
现金提取试验
另外,评价还有一个原则要遵循,就是考现金,即考一个。现在很多付费代理网站都提供API接口,我们可以一次性提取多个代理,但是这样会导致一个问题。每抽取一个代理,商家都会尽力保证其可用性,但是过一段时间后,这个代理可能就不好用了,所以如果我们一次性抽取100个代理,但是这100个代理不同时参与测试,后面的代理就要经历一个等待期。如果过一段时间再对这些药剂进行检测,肯定会影响后半段药剂的有效性。所以这里我们统一设置提取数量为1,即请求一个接口获取一次代理,然后立即测试,这样可以保证测试的公平性,排除不同代理有效期的干扰。
时间计算
因为我们的一个项目是测试代理的响应速度,所以我们需要计算程序的请求和响应之间的时间差。我们在这里使用的测试Python库是requests,因此我们可以计算请求和响应之间的时间差。时间计算方法如下:
测试链接
测试时还需要使用稳定的没有反爬虫的链接,可以排除服务器的干扰。这里我们用百度作为测试对象。
超时限制
在测试过程中,我们难免会遇到代理请求超时的问题,所以这里我们也需要统一一个超时时间,设置为60秒。如果使用代理请求百度60秒,仍然没有得到响应,则视为代理无效。
测试数量
要做评估,那么样本不能太小。比如只有十几个测试,不能轻易下结论。在这里,我选择一个适中的评估数量500,即每个包500个代理来测试。
检查法
嗯,这部分测试过程主要讲的是求值的代码逻辑。首先,进行一个测试,所以这里有一个test_proxy()方法:
在主程序中,是获取API,然后统计结果。代码如下:
嗯,就这样,我用这个方法一个一个的测试了不同的代理包。
评估结果
经过评估,初步统计结果如下:
表中响应时间的方差越大,稳定性越低。
阿布云代理经典版因为长时间锁定同一个IP,所以方差很小,所以极其稳定,但是默认每秒最大请求是5次。
评估和分析
下面我们就从各个方面来分析一下每个套餐的优缺点。
利用率
通过可用性统计,我们可以发现可用性较高的代理包有:
通过判断平均响应速度,我们可以发现响应速度较快的代理包有:
通过对平均响应速度的方差分析,我们可以发现稳定性高的代理包有:
我们可以先看看每个套餐的价格:
为了安全,这里主要考虑提取API是否有访问认证,使用代理时是否有访问认证,也就是我们可以通过设置白名单来控制哪些可以使用。
其中,只有芝麻HTTP代理和Sun HTTP代理默认使用白名单限制,即只有将使用IP加入白名单才能使用,可以有效控制使用权限。
另外,阿布云代理提供隧道代理认证,只有用户名和密码配置成功才能正常使用。
因此,总结如下:
不同的接口有不同的API调用频率限制,可以总结如下:
除了常规测试之外,我还选择了一些软件包的差异进行解释。这些特性有些是缺点,有些是优点,列举如下:
在逐项了解每个代理包的可用性、响应速度、稳定性、性价比、安全性等内容后,最后做出总结:
以上是对各种代理商的详细对比和评价,希望这篇文章能对你选择代理商有所帮助。
转载自:悄悄找爬虫的强心剂是哪个?十大支付代理商详细对比测评出炉!