陋室铭
永远也不要停下学习的脚步(大道至简至易)

前言

随着大数据时代的到来,爬虫已经成了获取数据的必不可少的方式,做过爬虫的想必都深有体会,爬取的时候莫名其妙 IP 就被网站封掉了,毕竟各大网站也不想自己的数据被轻易地爬走。 对于爬虫来说,为了解决封禁 IP 的问题,一个有效的方式就是使用代理,使用代理之后可以让爬虫伪装自己的真实 IP,如果使用大量的随机的代理进行爬取,那么网站就不知道是我们的爬虫一直在爬取了,这样就有效地解决了反爬的问题。 那么问题来了,使用什么代理好呢?这里指的代理一般是 HTTP 代理,主要用于数据爬取。现在打开搜索引擎一搜 HTTP 代理,免费的、付费的太多太多品牌,我们该如何选择呢?看完这一篇文章,想必你心中就有了答案。 对于免费代理,其实想都不用想了,可用率能超过 10% 就已经是谢天谢地了。真正靠谱的代理还是需要花钱买的,那这么多家到底哪家可用率高?哪家响应速度快?哪家比较稳定?哪家性价比比较高?为此,我对市面上比较流行的多家付费代理针对可用率、爬取速度、爬取稳定性、价格、安全性、请求限制等做了详细的评测,让我们来一起看一下到底哪家更强!

测评范围

免费代理

在这里我主要测试的是付费代理,免费代理可用率太低,几乎不会超过 10%,但为了作为对比,我选取了西刺免费代理进行了测试。

付费代理

付费代理我选取了站大爷、芝麻 HTTP 代理、太阳 HTTP 代理、讯代理、快代理、蘑菇代理、阿布云代理、全网代理、云代理、大象代理、多贝云进行了对比评测,购买了他们的各个不同级别的套餐使用同样的网络环境进行了测评,详情如下:

代理商家

套餐类型

官方网站

芝麻 HTTP 代理

默认版

http://www.zhimaruanjian.com/

阿布云代理

专业版

https://www.abuyun.com

动态版

经典版

大象代理

个人版

http://www.daxiangdaili.com

专业版

企业版

全网代理

普通版

http://www.goubanjia.com

动态版

快代理

VIP 套餐

https://www.kuaidaili.com

蘑菇代理

默认版

http://www.mogumiao.com

太阳 HTTP 代理

默认版

http://http.taiyangruanjian.com

讯代理

优质代理

http://www.xdaili.cn

混播代理

独享代理

云代理

VIP 套餐

http://www.ip3366.net

站大爷代理

普通代理

http://ip.zdaye.com

短效优质代理

多贝云代理

套餐一

http://dobel.cn/

套餐二

套餐三

注:其中蘑菇代理、太阳 HTTP 代理、芝麻 HTTP 代理的默认版表示此网站只有这一种代理,不同套餐仅是时长区别,代理质量没有差别。 嗯,我把上面的套餐全部买了一遍,以供下面的评测使用。

测评目标

本次测评主要分析代理的可用率、响应速度、稳定性、价格、安全性、使用频率等因素,下面我们来一一进行说明。

可用率

可用率就是提取的这些代理中可以正常使用的比率。假如我们无法使用这个代理请求某个网站或者访问超时,那么就代表这个代理不可用,在这里我的测试样本大小为 500,即提取 500 个代理,看看里面可用的比率多少。

响应速度

响应速度可以用耗费时间来衡量,即计算使用这个代理请求网站一直到得到响应所耗费的时间。时间越短,证明代理的响应速度越快,这里同样是 500 个样本,计算时只对正常可用的代理做统计,计算耗费时间的平均值。

稳定性

由于爬虫时我们需要使用大量代理,如果一个代理响应速度特别快,很快就能得到响应,而下一次请求使用的代理响应速度特别慢,等了三十秒才得到响应,那势必会影响爬取效率,所以我们需要看下商家提供的这些代理稳定性怎样,总不能这一个特别快,下一个又慢的不行。所以这里我们需要统计一下耗费时间的方差,方差越大,证明稳定性越差。

价格

价格,这个当然是需要考虑的内容,如果一个代理不论是响应速度还是稳定性都特别不错,但是价格非常非常高,这也是不可接受的。

安全性

这的确也是需要考虑的因素,比如一旦不小心把代理提取的 API 泄露出去了,别人就肆意使用我们的 API 提取代理使用,而一直耗费的是我们的套餐。另外一旦别人通过某些手段获取了我们的代理列表,而这些代理是没有安全验证的,这也会导致别人偷偷使用我们的代理。在生产环境上,这方面尤其需要注意。

使用频率

有些代理套餐在 API 调用提取代理时有频率限制,有的代理套餐则会限制请求频率,这些因素都会或多或少影响爬虫的效率,这部分因素我们也需要考虑进来。

测评标准

要做标准的测评,那就必须在标准的测评环境下进行,且尽可能排除一些杂项的干扰,如网络波动、传输延迟等一系列的影响。

主机选取

由于我的个人笔记本是使用 WiFi 上网的,所以可能会有网络波动,而且实际带宽其实并不太好把控,因此它并不适合来做标准评测使用。评测需要在一个网络稳定的条件下进行,而且多个代理的评测环境必须相同,在此我选择了一台腾讯云主机作为测试,主机配置如下:

参数名

参数值

操作系统

Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-53-generic x86_64)

带宽

5 Mbps

核心数

2

内存

4GB

Python 版本

3.5.2

这样我们就可以保证一个标准统一的测试环境了。

现取现测

另外在评测时还需要遵循一个原则,那就是现取现测,即取一个测一个。现在很多付费代理网站都提供了 API 接口,我们可以一次性提取多个代理,但是这样会导致一个问题,每个代理在提取出来的时候,商家是会尽量保证它的可用性的,但过一段时间,这个代理可能就不好用了,所以假如我们一次性提取出来了 100 个代理,但是这 100 个代理并没有同时参与测试,后面的代理就会经历一个的等待期,过一段时间再测这些代理的话,肯定会影响后半部分代理的有效性,所以这里我们将提取的数量统一设置成 1,即请求一次接口获取一个代理,然后立即进行测试,这样可以保证测试的公平性,排除了不同代理有效期的干扰。

时间计算

由于我们有一项是测试代理的响应速度,所以我们需要计算程序请求之前和得到响应之后的时间差,这里我们使用的测试 Python 库是 requests,所以我们就计算发起请求和得到响应之间的时间差即可,时间计算方法如下所示:

 
start_time = time.time()
requests.get(test_url, timeout=timeout, proxies=proxies)
end_time = time.time()
used_time = end_time - start_time

这里 used_time 就是使用代理请求的耗时,这样测试的就仅仅是发起请求到得到响应的时间。

测试链接

测试时我们也需要使用一个稳定的且没有反爬虫的链接,这样可以排除服务器的干扰,这里我们使用百度来作为测试目标。

超时限制

在测试时免不了的会遇到代理请求超时的问题,所以这里我们也需要统一一个超时时间,这里设置为 60 秒,如果使用代理请求百度,60 秒还没有得到响应,那就视为该代理无效。

测试数量

要做测评,那么样本不能太小,如只有十几次测试是不能轻易下结论的,这里我选取了一个适中的测评数量 500,即每个套餐获取 500 个代理进行测试。

测评过程

嗯,测评过程这边主要说一下测评的代码逻辑,首先测的时候是取一个测一个的,所以这里定义了一个 test_proxy () 方法:

 
test_url = 'https://www.baidu.com/'
timeout = 60

def test_proxy(proxy):
try:
proxies = {
'https': 'http://' + proxy
}
start_time = time.time()
requests.get(test_url, timeout=timeout, proxies=proxies)
end_time = time.time()
used_time = end_time - start_time
print('Proxy Valid', 'Used Time:', used_time)
return True, used_time
except (ProxyError, ConnectTimeout, SSLError, ReadTimeout, ConnectionError):
print('Proxy Invalid:', proxy)
return False, None

这里需要传入一个参数 proxy,代表一个代理,即 IP 加端口组成的代理,然后这里使用了 requests 的 proxies 参数传递给 get () 方法。对于代理无效的检测,这里判断了 ProxyError, ConnectTimeout, SSLError, ReadTimeout, ConnectionError 这几种异常,如果发生了这些异常统统视为代理无效,返回错误。如果在 timeout 60 秒内得到了响应,那么就计算其耗费时间并返回。 在主程序里,就是获取 API 然后统计结果了,代码如下:

 
max = 500

def main():
print('Testing')
used_time_list = []
valid_count = 0
total_count = 0
while True:
flag, result = get_page(api_url)
if flag:
proxy = result.strip()
if is_proxy(proxy):
total_count += 1
print('Testing proxy', proxy)
test_flag, test_result = test_proxy(proxy=proxy)
if test_flag:
valid_count += 1
used_time_list.append(test_result)
stats_result(used_time_list, valid_count, total_count)
time.sleep(wait)
if total_count == max:
break

这里加了一些判断,如 is_proxy () 方法判断了获取的是不是符合有效的代理规则,即判断它是不是 IP 加端口的形式,这样可以排除 API 返回一些错误信息的干扰。另外这里设置了 total_count 和 valid_count 变量,只有符合代理规则的代理参与了测试,这样才算一次有效测试,total_count 加一,如果测试可用,那么 valid_count 加一并记录耗费时间。最后调用了 stats_results 方法进行了统计:

 
import numpy as np

def stats_result(used_time_list, valid_count, total_count):
if not used_time_list or not total_count:
return
used_time_array = np.asarray(used_time_list, np.float32)
print('Total Count:', total_count,
'Valid Count:', valid_count,
'Valid Percent: %.2f%%' % (valid_count * 100.0 / total_count),
'Used Time Mean:', used_time_array.mean(),
'Used Time Var', used_time_array.var())

这里使用了 Numpy 来统计了耗费时间的均值和方差,分别反映代理的响应速度和稳定性。 嗯,就这样,利用这个方法我对各个不同的代理套餐逐一进行了测试。

测评结果

经过测评,初步得到如下统计结果:

代理商家

套餐类型

测试次数

有效次数

可用率

响应时间均值

响应时间方差

芝麻 HTTP 代理

默认版

500

495

99.00%

0.916853

1.331989

阿布云代理

专业版

500

452

90.40%

0.68770707

1.1477163

动态版

500

494

98.80%

1.83994

6.0491614

经典版

500

499

99.80%

0.49301904

0.25724468

大象代理

个人版

500

238

47.60%

5.340489

78.56444

专业版

500

284

56.80%

6.87078

105.7984

企业版

500

259

51.80%

6.3081837

121.08402

全网代理

普通版

500

220

44.00%

5.584057

47.442596

动态版

500

485

97.00%

2.776973

17.568045

快代理

VIP 套餐

500

178

35.60%

16.636587

221.69661

蘑菇代理

默认版

500

497

99.40%

1.0985725

9.532586

太阳 HTTP 代理

默认版

500

400

80.00%

1.2522483

12.662229

讯代理

优质代理

500

495

99.00%

1.0512681

6.4247565

混播代理

500

494

98.80%

1.0664985

6.451699

独享代理

500

500

100%

0.7056521

0.35416448

多贝云代理

套餐一

500

500

100.00%

0.6580079

0.199466

套餐二

500

500

100.00%

0.510749

0.022519

套餐三

500

499

99.80%

0.6785444

0.5197055

云代理

VIP 套餐

500

489

97.80%

3.4216988

38.120296

站大爷代理

普通代理

500

92

18.40%

5.067193

66.12128

短效优质代理

500

488

97.60%

1.5625348

8.121197

西刺代理

免费

500

31

6.2%

9.712833

95.09569

注:

  • 表中的响应时间方差越大,代表稳定性越低。
  • 阿布云代理经典版方差较小是因为它是长时间锁定了同一个 IP,因此极其稳定,但每秒最大请求默认 5 次。
  • 多贝云代理套餐一二方差较小是因为它是长时间锁定了同一个 IP,因此极其稳定,但每秒最大请求默认 20 次。

测评分析

下面我们将从各个方面分析一下各个套餐的优劣。

可用率

通过可用率统计,我们可以发现可用率较高的代理套餐有:

级别

套餐

描述

第一梯队

多贝云代理、讯代理独享代理、阿布云代理经典版、蘑菇代理、芝麻 HTTP 代理、讯代理优质代理

可用率 99% 以上

第二梯队

阿布云代理动态版、讯代理混播代理、云代理、站大爷短效优质代理、全网代理动态版、阿布云代理专业版

可用率 99% 以下,90% 以上

第三梯队

太阳 HTTP 代理、大象代理专业版、大象代理企业版

可用率 90% 以下,50% 以上

第四梯队

大象代理个人版、全网代理普通版、快代理

可用率 50% 以下,20% 以上

第五梯队

站大爷普通代理、西刺代理

可用率 20% 以下

响应速度

通过平均响应速度判别,我们可以发现响应速度较快的代理套餐有:

级别

套餐

描述

第一梯队

多贝云代理、阿布云代理经典版、阿布云代理专业版、讯代理独享代理、芝麻 HTTP 代理

响应时间 1s 以内

第二梯队

讯代理优质代理、讯代理混播代理、蘑菇代理、太阳代理、站大爷短效优质代理、阿布云代理动态版

响应时间 1s 以上,2s 以内

第三梯队

全网代理动态版、云代理

响应时间 2s 以上,5s 以内

第四梯队

站大爷普通代理、大象代理个人版、全网代理普通版、大象代理企业版、大象代理专业版、西刺代理

响应时间 5s 以上,10s 以内

第五梯队

快代理

响应时间 10s 以上

稳定性

通过平均响应速度方差分析,我们可以发现稳定性较高的代理套餐有:

级别

套餐

描述

第一梯队

多贝云代理、阿布云代理经典版、讯代理独享代理、阿布云代理专业版、芝麻 HTTP 代理

方差 3 以内

第二梯队

阿布云代理动态版、讯代理优质代理、讯代理混播代理、站大爷短效优质代理、蘑菇代理

方差 10 以内,3 以上

第三梯队

太阳 HTTP 代理、全网代理动态版、云代理、全网代理普通版、站大爷普通代理、大象代理个人版、西刺代理

方差 100 以内,10 以上

第四梯队

大象代理专业版、大象代理企业版、快代理

方差 100 以上

价格

我们可以先看一下各个套餐的价格:

代理商家

套餐类型

价格描述

价格 URL

备注

芝麻 HTTP 代理

默认版

¥40 / 周 ¥114 / 月

http://www.zhimaruanjian.com/pay/

另有包量套餐、定期有优惠活动,可领免费 IP,可免费试用

阿布云代理

专业版

¥1 / 时 ¥16 / 天 ¥108 / 周 ¥429 / 月

https://www.abuyun.com/

每秒请求只有 5 个,多加每秒请求 1 个需要 1¥0.5 / 月,¥90 / 年

动态版

¥1 / 时 ¥16 / 天 ¥108 / 周 ¥429 / 月

经典版

¥1 / 时 ¥16 / 天 ¥108 / 周 ¥429 / 月

多贝云代理

套餐一

¥500 / 月

http://dobel.cn/

套餐一二默认每秒最多请求 20 次 套餐三每秒默认最多请求 5 次,最多都可购买到 100 个请求数

套餐二

¥600 / 月

套餐三

¥425 / 月

大象代理

个人版

¥9 / 天 ¥98 / 月

http://www.daxiangdaili.com/

好评可送时长

专业版

¥19 / 天 ¥198 / 月

企业版

¥49 / 天 ¥498 / 月

全网代理

普通版

¥9 / 天 ¥35 / 周 ¥93 / 月 ¥500 / 年

http://www.goubanjia.com/buy/high.shtml

动态版

¥10 / 天 ¥160 / 月 ¥1250 / 年

http://www.goubanjia.com/buy/dynamic.shtml

快代理

VIP 套餐

¥20 / 天 ¥60 / 周 ¥200 / 月 ¥2000 / 年

https://www.kuaidaili.com/pricing

有普通、VIP、SVIP、专业版可选

蘑菇代理

默认版

¥6 / 天 ¥169 / 月 ¥1699 / 年

http://www.mogumiao.com/buy

另有包量套餐可选购,可免费试用

太阳 HTTP 代理

默认版

¥60 / 周 ¥198 / 月 ¥498 / 季 ¥1590 / 年

http://http.taiyangruanjian.com/newrecharge/

另有保量套餐可选购,可领免费 IP,可免费试用

讯代理

优质代理

¥9 / 天 ¥210 / 月 ¥2100 / 年

http://www.xdaili.cn/buyproxy

可免费试用

混播代理

¥29 / 天 ¥729 / 月 ¥6999 / 年

独享代理

¥9 / 天 ¥210 / 月 ¥2100 / 年

云代理

VIP 套餐

¥10 / 天 ¥120 / 月 ¥599 / 年

http://www.ip3366.net/pricing/

另有普通套餐可选

站大爷代理

普通代理

¥8 / 天 ¥80 / 月 ¥720 / 年

http://ip.zdaye.com/buy.html

另有私密代理可选

短效优质代理

¥17 / 天 ¥475 / 月 ¥4569 / 年

http://ip.zdaye.com/ShortProxy.html

按照包月的价格,我们可以统一对比如下:

级别

套餐

描述

第一梯队

多贝云代理、大象代理企业版、站大爷短效优质代理、阿布云代理、芝麻 HTTP 代理

包月大于 400

第二梯队

讯代理混播代理

包月小于 400,大于 300

第三梯队

讯代理优质代理、讯代理独享代理、快代理

包月小于 300,大于 200

第四梯队

太阳 HTTP 代理、大象代理专业版、蘑菇代理、全网代理动态版、云代理

包月小于 200,大于 100

第五梯队

大象代理个人版、全网代理、站大爷普通代理

包月小于 100

安全性

对于安全性,此处主要考虑提取 API 是否有访问验证,使用代理时是否有访问验证,即可以通过设置白名单来控制哪些可以使用。 其中只有芝麻 HTTP 代理、太阳 HTTP 代理默认使用了白名单限制,即只有将使用 IP 添加到白名单才可以使用,可以有效控制使用权限。 另外阿布云代理提供了隧道代理验证,只有成功配置了用户名和密码才可以正常使用。 所以在此归纳如下:

级别

套餐

描述

第一梯队

芝麻 HTTP 代理、太阳 HTTP 代理、阿布云代理、多贝云代理

默认使用了白名单控制或隧道代理验证

第二梯队

其他

可直接使用

调取频率

不同的接口具有不同的 API 调用频率限制,归纳如下:

代理商家

套餐类型

调取频率限制

芝麻 HTTP 代理

默认版

1 秒

阿布云代理

专业版

无需获取

动态版

无需获取

经典版

无需获取

多贝云代理

套餐一

无需获取

套餐二

无需获取

套餐三

无需获取

大象代理

个人版

1 秒

专业版

1 秒

企业版

无限制

全网代理

普通版

无限制

动态版

100 毫秒

快代理

VIP 套餐

200 毫秒

蘑菇代理

默认版

5 秒

太阳 HTTP 代理

默认版

1 秒

讯代理

优质代理

5 秒

混播代理

10 秒

独享代理

15 秒

云代理

VIP 套餐

无限制

站大爷代理

普通代理

3 秒

短效优质代理

10 秒

西刺代理

免费

无限制

在此可以简单总结如下:

级别

套餐

描述

第一梯队

云代理、全网代理普通版、大象代理企业版、西刺代理、阿布云(调取无限制,请求默认最大 1 秒 5 请求)、多贝云(调取无限制,请求默认最大 1 秒 20 请求)

无限制

第二梯队

全网代理动态版、快代理

小于 1s

第三梯队

大象代理个人版、大象代理专业版、芝麻 HTTP 代理、太阳 HTTP 代理、站大爷普通代理、蘑菇代理、讯代理优质代理

1s - 5s

第四梯队

讯代理混播代理、讯代理独享代理、站大爷短效优质代理

大于 5s

特色功能

除了常规的测试之外,我这边还选取了某些套餐的与众不同之处进行说明,这些特点有的算是缺点,有的算是优点,现列举如下:

代理

描述

阿布云代理 多贝云代理

使用隧道技术实现,代理不能直接拿到,必须配置访问认证,默认 1 秒只能支持 5/20 个请求,如需更多需要付费。

讯代理

独享代理拨号时间略长,可用主机少,容易出现拨号失败现象,单个代理有效时长可控。

芝麻 HTTP 代理

必须要设置白名单才可以使用,后台可控,使用 API 提取代理不扣费,使用时才扣费。

测评综合

分项了解了各个代理套餐的可用率、响应速度、稳定性、性价比、安全性等内容之后,最后做一下总结:

代理商家

套餐类型

可用率

可用率评价

响应时间均值

响应速度评价

响应时间方差

稳定性

包月价格

价格评价

安全性

访问频率限制

调取频率限制

推荐指数

芝麻 HTTP 代理

默认版

99%

极高

0.916853

极快

1.331989

极好

360

较高

1 秒

★★★★★

阿布云代理

专业版

90.4%

0.68770707

极快

1.1477163

极好

429

无需获取

★★★☆

动态版

98.8%

1.83994

6.0491614

429

无需获取

★★★★

经典版

99.8%

极高

0.49301904

极快

0.25724468

极好

429

无需获取

★★★★

多贝云代理

套餐一

100%

极高

0.658007

极快

0.199466

极好

500

无需获取

★★★★★

套餐二

100%

极高

0.510748

极快

0.022519

极好

600

无需获取

★★★★★

套餐三

100%

极高

0.678544

极快

0.519705

极好

425

无需获取

★★★★☆

大象代理

个人版

47.6%

5.340489

78.56444

一般

98

1 秒

★★

专业版

56.8%

一般

6.87078

105.7984

198

较低

1 秒

★☆

企业版

51.8%

一般

6.3081837

121.08402

498

无限制

全网代理

普通版

44%

5.584057

47.442596

一般

93

无限制

★★

动态版

97%

2.776973

一般

17.568045

一般

160

较低

100 毫秒

★★★

快代理

VIP 套餐

35.6%

一般

16.636587

极慢

221.69661

200

200 毫秒

蘑菇代理

默认版

99.4%

极高

1.0985725

9.532586

169

较低

5 秒

★★★★☆

太阳 HTTP 代理

默认版

80%

一般

1.2522483

12.662229

一般

198

较低

1 秒

★★★★

讯代理

优质代理

99%

极高

1.0512681

6.4247565

210

5 秒

★★★★☆

混播代理

98.8%

1.0664985

6.451699

729

10 秒

★★★☆

独享代理

100%

极高

0.7056521

极快

0.35416448

极好

210

15 秒

★★★★☆

云代理

VIP 套餐

97.8%

3.4216988

一般

38.120296

一般

120

较低

无限制

★★★☆

站大爷代理

普通代理

18.4%

极低

5.067193

66.12128

一般

80

3 秒

★☆

短效优质代理

97.6%

1.5625348

8.121197

475

10 秒

★★★☆

西刺代理

免费

6.2%

极低

9.712833

95.09569

一般

0

免费

无限制

所以在综合来看比较推荐的有:芝麻代理、讯代理、阿布云、多贝云代理,详细的对比结果可以参照表格。 以上便是各家代理的详细对比测评情况,希望此文能够在大家选购代理的时候有所帮助。

posted on 2021-06-16 15:36  宏宇  阅读(957)  评论(0编辑  收藏  举报