V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
jackjyhl
V2EX  ›  Python

十万火急的数据采集项目,爬虫代理测试对比

  •  
  •   jackjyhl · 2019-02-21 11:52:05 +08:00 · 7134 次点击
    这是一个创建于 2104 天前的主题,其中的信息可能已经有所发展或是发生改变。
    开春上班第一天,正在喝咖啡发神,老大开会宣布公司要重点投入数据爬取和分析业务,为客户做业务做数据支撑要求达到日均 1000W 级别的数据采集量,让我做一下技术规划。赶紧找出了一年前爬虫框架跑了一下电商数据采集测试,发现每次只能采集几百条数据,立马就挂了。检查了 UA、Cookie、JS 执行后再试试,效果好一阵后马上又下降了,发现电商的反爬策略已经又精进了,还需要代理 IP 配合。马上淘宝、百度找一遍,发现 HTTP 代理、爬虫代理、爬虫 IP 的产品一大堆参差不齐,只能再动手找几家看起来还行的作对比测试,现将各种产品及测试方法整理发出来,给需要采集数据的朋友参考下:
    一、 免费代理(超低收费)
    完全免费的就不用测试了,基本上已经是万人骑,浪费时间,基础的连通性都有问题。其他低收费的比较便宜,1 元几千 ip 随意用,来源就是对程序不断扫描出来的公开或半公开(未加密)的代理,网络稳定性差,延迟高,导致程序运行不稳定,要用这种代理,除了要做 IP 池管理,还要做代理 IP 失效实时检查,并且带宽极不稳定。找了几家测试,稳定性太差,连测试结果都做不出来,直接 pass。
    二、 付费代理
    付费代理产品也不少,各家都号称是私密家庭代理 IP,都号称自营线路,关键哪里来这么多家庭 IP ???了解一翻之后,总体来说就两大类产品形态:
    ( 1 ) URL 提取文本的代理
    行话是 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 代理 默认版 http://h.zhimaruanjian.com/
    讯代理 优质代理 混拨代理 独享代理 动态转发 http://www.xdaili.cn
    蘑菇代理 API 私密代理 隧道转发代理 http://www.moguproxy.com/
    快代理 开放代理 VIP 套餐 https://www.kuaidaili.com
    站大爷代理 短效优质代理 一手私密代理 独享 IP 池代理 http://ip.zdaye.com
    太阳 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 的时延。
    测评结果:
    代理厂家 套餐类型 测试数量 成功数量 IP 有效率 平均时延 稳定性比率

    阿布云代理 专业版 500 451 90.2% 127ms 1.04
    动态版 500 492 98.4% 152ms 1.72
    经典版 500 498 99.6% 115ms 0.99

    亿牛云代理 动态短效 500 498 99.6% 181ms 1.23
    动态混拨 500 500 100% 99ms 0.96
    优质代理 500 491 98.2% 121ms 1.02
    爬虫代理标准版 500 498 99.6% 118ms 0.99
    芝麻 HTTP 代理 默认版 500 494 98.8% 128ms 1.1

    讯代理 优质代理 500 495 99% 131ms 1.05
    混拨代理 500 494 98.8% 124ms 1.07
    独享代理 500 499 99.8% 119ms 0.92
    动态转发 500 496 99.2% 137ms 1.13
    蘑菇代理 API 私密代理 500 467 93.4% 174ms 1.43
    隧道转发代理 500 448 89.6% 231ms 1.58

    快代理 开放代理 VIP 套餐 500 168 33.6% 232ms 2.41
    站大爷代理 短效优质代理 500 478 95.6% 159ms 1.19
    一手私密代理 500 488 97.6% 132ms 1.37
    独享 IP 池代理 500 494 98.8% 174ms 1.48
    太阳 http 代理 默认套餐 500 398 79.6% 175ms 1.11
    蚂蚁代理 高质量动态代理 500 497 99.4% 129ms 1.05

    说明:
    1、稳定性测试实为在代理信息的存活周期内,每等待 10 秒后,用相同的代理信息去重复请求目标网站持续 60 秒,以检验代理 IP 的质量是否稳定持续可用,比率为 1,说明前后时延相同,比率越大,说明后面请求的时延越大。
    2、阿布云的隧道代理、亿牛云的爬虫代理和讯代理的动态转发都是动态隧道代理,即代理信息为隧道 IP+端口号,不同的端口对应不同的外网 IP,自动实现代理 IP 切换,因此代理时延小而且稳定,缺点就是 IP 有效时间较短,不太方便做管理策略。
    3、亿牛云的动态混拨、优质代理、爬虫代理标准版都是业务独享,因此具体业务采集的效果应该会更好,但是对方要求备注业务网站。
    4、站大爷、蘑菇代理连续测试不稳定,出现延迟较高的情况。
    5、蚂蚁代理客服经常联系不上,回复很慢,估计是一个人做的。
    6、芝麻 HTTP 代理所有套餐都是限量套餐,单个订单每天使用代理量最大 700 个,长期采集成本较高
    IP 可用率
    级别 套餐 IP 可用率
    第一梯队 阿布云经典版、亿牛云动态短效、亿牛云动态混拨、亿牛云爬虫代理标准版、讯代理独享代理、讯代理动态转发、蚂蚁代理高质量动态代理 大于 99%
    第二梯队 阿布云专业版、阿布云动态版、亿牛云优质代理、芝麻 http 代理默认版、讯代理优质代理、讯代理混拨代理、蘑菇代理 API 私密代理、站大爷代理所有版本 大于 90%小于 99%
    第三梯队 太阳 http 代理默认套餐、蘑菇代理隧道转发代理 大于 50%小于 90%
    第四梯队 快代理 小于 50%
    代理时延及稳定性
    级别 套餐 描述
    第一梯队 阿布云代理经典版、亿牛云代理动态混拨、亿牛云代理爬虫代理标准版、芝麻 http 代理默认版、讯代理独享代理 代理总时延 120ms 以内
    第二梯队 阿布云专业版、亿牛云代理优质代理、讯代理优质代理、讯代理混拨代理、讯代理动态转发、站大爷代理短效优质代理、站大爷一手私密代理、蚂蚁代理高质量动态代理 代理总时延 200ms 以内
    第三梯队 蘑菇代理所有版本、站大爷代理独享 IP 池代理、太阳 http 代理 代理总时延 200ms 以上
    套餐价格
    代理厂家 套餐类型 套餐价格 备注说明

    阿布云代理 专业版 ¥1/时,¥20/天,
    ¥128/周,¥499/月

    每秒只允许 5 个请求。如果需要更多请求数要额外购买;通过用户名及密码访问

    动态版 ¥1/时,¥16/天,
    ¥108/周,¥429/月
    经典版 ¥1/时,¥22/天,
    ¥138/周,¥512/月

    亿牛云代理 动态短效 ¥7/元,¥168/月
    通过绑定白名单访问,另有按量、定制套餐
    动态混拨 ¥18/元,¥399/月
    优质代理 ¥28/元,¥719/月
    爬虫代理标准版 ¥15/天,¥99/周,
    ¥399/月,¥1180/季 每秒只允许 5 个请求。如果需要更多请求,可选择更高请求的套餐;通过用户名及密码访问
    芝麻 HTTP 代理 默认版 ¥98/周,¥360/月 限制了每天的使用量,最大每天使用代理上限 700 个

    讯代理 优质代理 ¥9/天,¥210/月,¥2100/年
    可免费试用
    一个订单只能一个白名单;增加白名单需要单独购买
    混拨代理 ¥29/天,¥729/月,¥6999/年
    独享代理 ¥9/天,¥210/月,¥2100/年
    动态转发 ¥20/100000 个 单个订单一天内要用完购买量
    蘑菇代理 API 私密代理 ¥6/天,¥169/月,¥1699/年 也有按量和不限量套餐
    隧道转发代理 ¥15/天,¥400/月,¥4440/年 每秒只允许 5 个请求
    快代理 开放代理 VIP 套餐 ¥20/天,¥60/周,¥200/月,¥2000/年 有普通、VIP、SVIP、专业版可选;另有按量套餐
    站大爷代理 短效优质代理 ¥25/天,¥680/月,¥6528/年

    可以免费测试

    一手私密代理 ¥2200/月,¥5940/季,¥18480/年
    独享 IP 池代理 ¥70/天,¥909/月,¥8736/年
    太阳 http 代理 默认套餐 ¥168/月,¥358/季,¥888/年 可免费试用,另有效果
    蚂蚁代理 高质量动态代理 每并发¥3/天 有免费代理
    按照包月的价格,我们统一对比如下:
    级别 套餐 描述
    第一梯队 阿布云经典版、亿牛云代理优质代理、讯代理混拨代理、站大爷代理短效优质代理、站大爷代理一手私密代理、站大爷独享 IP 池代理 包月大于 500
    第二梯队 阿布云专业版、阿布云动态版、蘑菇代理隧道转发代理 包月大于 400,小于 500
    第三梯队 亿牛云代理动态混拨、亿牛云代理爬虫代理标准版、芝麻 http 代理 包月大于 300,小于 400
    第四梯队 讯代理优质代理、讯代理独享代理、快代理 包月大于 200,小于 300
    第五梯队 亿牛云代理动态短效、蘑菇代理 API 私密代理、太阳 http 代理 包月小于 200


    安全性
    对于安全性,目前主流两种访问方式:
    1、 绑定白名单才能使用代理:
    亿牛云动态短效、亿牛云优质代理、亿牛云动态混拨、讯代理优质代理、讯代理混拨代理、讯代理独享代理,站大爷所有代理、太阳 HTTP 代理、蘑菇 API 私密代理、快代理
    2、 需要提供密码验证才能使用代理
    阿布云所有代理、亿牛云爬虫代理标准版、讯代理动态转发、蚂蚁代理高质量动态代理、蘑菇代理隧道转发代理、站大爷所有代理
    从统计看,各商家代理产品都支持至少其中一种使用方式。站大爷代理产品是即需要白名单又需要密码认证才能使用;不过在实际使用中,这种方式比较麻烦,支持其中一种方法即可。
    蘑菇代理添加白名单限制后无效,客服说是为防止用户忘记添加白名单后导致 API 链接挂起,所以部份服务器未添加白名单功能。
    另外在测试中发现,通过 API 修改白名单属于比较实用的功能,目前亿牛云、讯代理的支持接口最完善。
    调取频率
    代理厂家 套餐类型 调取频率限制

    阿布云代理 专业版 1 秒,每秒只允许 5 个请求
    动态版 1 秒,每秒只允许 5 个请求
    经典版 1 秒,每秒只允许 5 个请求

    亿牛云代理 动态短效 60 秒
    动态混拨 10 秒、60 秒
    优质代理 10 秒、60 秒、提取频率可定制
    爬虫代理标准版 每秒 5 请求,更高的套餐支持每秒 5*N 请求
    芝麻 HTTP 代理 默认版 1 秒

    讯代理 优质代理 5 秒
    混拨代理 10 秒
    独享代理 15 秒
    动态转发 每秒最多 25 请求
    蘑菇代理 API 私密代理 1 秒
    隧道转发代理 每秒 5 并发
    快代理 开放代理 VIP 套餐 5 秒
    站大爷代理 短效优质代理 10 秒
    一手私密代理 不超过 45 台设备同时提,也可是单台设备可以同时提 44 次
    独享 IP 池代理 1 秒
    太阳 http 代理 默认套餐 1 秒
    蚂蚁代理 高质量动态代理 每并发¥3/天
    备注:
    为了保证设备的正常负载及更好的代理质量,商家普遍都限制了提取频率。
    综合评估
    根据各个代理厂家产品的 IP 可用率、代理时长、稳定性、价格、安全性等后,最后统计如下:
    代理厂家 套餐类型 IP 可用率 代理时延 稳定性 包月价格 安全性 调取频率 推荐星级

    阿布云代理 专业版 90.2% 127ms 高 ¥499/月 高 1 秒 3 星
    动态版 98.4% 152ms 一般 ¥429/月 高 1 秒 4 星
    经典版 99.6% 115ms 很高 ¥512/月 高 1 秒 4 星

    亿牛云代理 动态短效 99.6% 181ms 高 ¥168/月 高 60 秒 3 星
    动态混拨 100% 99ms 很高 ¥399/月 高 10 秒、60 秒 5 星
    优质代理 98.2% 121ms 很高 ¥719/月 高 10 秒、60 秒 4 星
    爬虫代理标准版 99.6% 118ms 很高 ¥399/月 高 20 秒 4 星半
    芝麻 HTTP 代理 默认版 98.8% 108ms 高 ¥360/月 高 1 秒 5 星

    讯代理 优质代理 99% 131ms 高 ¥210/月 高 5 秒 4 星半
    混拨代理 98.8% 124ms 高 ¥729/月 高 10 秒 4 星
    独享代理 99.8% 119ms 很高 ¥210/月 高 15 秒 5 星
    动态转发 99.2% 137ms 高 ¥20/100000 个 高 每秒最多 25 请求 4 星
    蘑菇代理 API 私密代理 93.4% 174ms 1.43 ¥169/月 低 1 秒 3 星
    隧道转发代理 89.6% 231ms 1.58 ¥400/月 高 每秒 5 并发 2 星半
    快代理 开放代理 VIP 套餐 33.6% 232ms 低 ¥200/月 高 5 秒 2 星
    站大爷代理 短效优质代理 95.6% 159ms 一般 ¥680/月 很高 10 秒 3 星
    一手私密代理 97.6% 132ms 一般 ¥2200/月 很高 每秒不超过 45 请求 3 星
    独享 IP 池代理 98.8% 174ms 低 ¥909/月 很高 1 秒 3 星半
    太阳 http 代理 默认套餐 79.6% 175ms 低 ¥168/月 高 1 秒 3 星
    蚂蚁代理 高质量动态代理 99.4% 129ms 高 每并发¥3/天 高 每并发¥3/天 4 星半
    根据统计结果:
    API 代理比较推荐的有:讯代理、亿牛云、芝麻代理
    动态隧道代理(又称为爬虫代理 /隧道代理 /动态转发 /动态版,表中黑体字部份)比较推荐的有:讯代理、亿牛云、蚂蚁代理
    此测评结果仅反映各代理厂商当前的产品状态,随着互联网环境的变化和用户的不断应用深入,各厂商的产品丰富度、产品性能、产品价格都会有所调整。仅以此希望能够帮助大家在选购代理时有所建议。
    11 条回复    2019-09-17 16:42:23 +08:00
    aikuzhenyan
        1
    aikuzhenyan  
       2019-02-21 15:32:57 +08:00
    谢谢大神
    fuye
        2
    fuye  
       2019-02-21 15:46:24 +08:00
    这份实测对比很有价值
    ml1344677
        3
    ml1344677  
       2019-02-21 17:22:55 +08:00
    私人在讯代理消费了不少钱了,讯代理的动态转发还可以
    luozic
        4
    luozic  
       2019-02-22 00:02:33 +08:00 via iPhone
    不错不错
    liuxingbaoyu
        5
    liuxingbaoyu  
       2019-02-22 04:30:39 +08:00
    感谢测试
    carryer
        6
    carryer  
       2019-02-22 08:45:14 +08:00
    学习,感谢
    jackjyhl
        7
    jackjyhl  
    OP
       2019-02-22 09:54:13 +08:00
    讯代理偶尔采集下数据还行,因为他们家最高每秒 25 个请求,比亿牛云和阿布云的低不少,另外他们按照次数计费,算下来采集的成本是最高的,所以最后没选他们家
    yiniuyun
        8
    yiniuyun  
       2019-02-22 17:22:28 +08:00
    比较实用的测试对比,可以为我们这些需要代理的节省时间去找代理和测试,感谢楼主分享,已收藏
    piloots
        9
    piloots  
       2019-02-22 20:25:40 +08:00
    mk 爬虫代理 ip
    dabaibai
        10
    dabaibai  
       2019-08-03 11:11:45 +08:00
    MK 一下 谢谢
    Thresh
        11
    Thresh  
       2019-09-17 16:42:23 +08:00
    mark 挺全的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2985 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:57 · PVG 22:57 · LAX 06:57 · JFK 09:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.