Chinaunix首页 | 论坛 | 博客
  • 博客访问: 27957
  • 博文数量: 38
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2022-12-14 16:49
文章分类

全部博文(38)

文章存档

2024年(4)

2023年(28)

2022年(6)

我的朋友

分类: Python/Ruby

2023-09-22 14:45:50

在当今互联网大数据时代,数据采集日益发展,HTTP代理在其中扮演着重要的角色。和其他产品一样,在使用HTTP代理的时候我们也会遇到诸如:稳定性、匿名程度、响应速度、IP池可用率等问题,如何对HTTP代理进行测试,才能满足我们的需求?

目前市面上很多HTTP代理都有提供试用,购买之前大部分人都会试用,但是我们很经常看到,很多uu在互动社区评判HTTP代理服务提供商提供的产品购买后使用效果很差。

豌豆代理也算是一家老牌的HTTP代理厂商了,在众多平台上有看过他们做过品宣,也看多很多品宣把他们拉出来一起对比,很多人对此有个疑问,豌豆代理到底如何呢?风这么大,能入手吗?

这次,众人呼吁的豌豆HTTP代理测试来了!


1.测试HTTP代理的注意事项

在测试之前,我们需要注意的是:

  • 测试环境应该符合实际应用环境

  • 测试频率要符合我们日常做数据采集的使用习惯

  • 测试IP的节点范围要广

  • 不同应用场景下的不同需求,需要选择适合的测试方法和指标


2.HTTP代理测试项目

无论测试哪家HTTP代理,逃不开这几项:可用率、响应速度、稳定性、匿名度、安全性测试,以此来全面评估这家HTTP代理的质量。

  • 响应速度

通过测量HTTP代理与目标服务器之间的响应时间,评估HTTP代理的连接速度。在测试的时候,可以统计一下所有的时间,然后测算平均响应时间。如果这个HTTP代理能够更快地传输请求和接收响应,证明这个HTTP代理速度越快。

  • 可用率

一个可用性高的HTTP代理意味着它在大部分时间内都能正常工作,并且能够顺利传递请求和响应。我这设置成30秒,意思就是使用这个HTTP代理访问网站超过30秒还是得不到响应,就默认为这个HTTP代理无效了。

假设我们一次性提取1000个HTTP代理,如果这1000个HTTP代理在我们使用的时候,有50个超过30秒得到不到响应/无法传递请求,则认为这个可用率为(1000-50)?1000=95%。

  • 稳定性

在数据抓取的时候,我们会用到大量的HTTP代理,一个稳定的HTTP代理能够长时间保持连接,并且不会频繁断开或出现连接错误,才能有效助力我们数据抓取。

  • 带宽

对于大部分的用户来说,HTTP代理的带宽高低也很影响使用体验,而影响HTTP代理的带宽高低的因素蛮多的,如:HTTP代理的使用人数、厂商对HTTP代理带宽的限制、代理服务器的性能等。


3.测评环境

良好的测试环境,需要在稳定的网络环境下测试。

这次测评,我是使用 python 30个线程池进行多线程测试,其中电脑配置如下:

img



4.测试链接

依然是我们的度同学



5.测试数量

基于概率,选择提取1000个HTTP代理进行测试。

img



6.测试过程

这次,我把响应速度和可用率结合在一起,测试豌豆代理对百度站点的连通性和请求延迟。

  • 有效性+延迟部分代码如下:

    点击(此处)折叠或打开

    1. import logging
    2. import time
    3. from concurrent.futures import thread
    4. import requests
    5. thread_pool = thread.ThreadPoolExecutor(max_workers=30)
    6. session = requests.session()


    7. # 测试代理ip有效性核心代码
    8. def test_proxy_usability(proxy_ip,thread_id):
    9.     target_url = ''
    10.     headers = {
    11.         "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
    12.     }
    13.     proxies = {
    14.         'http': f'http://{proxy_ip}',
    15.         'https': f'http://{proxy_ip}'
    16.     }
    17.     try:
    18.         status = "失败"
    19.         resp = session.get(target_url,headers=headers, proxies=proxies, timeout=5)
    20.         if resp.status_code == 200:
    21.             status = "成功"
    22.         else:
    23.             pass
    24.     except Exception as e:
    25.         pass

状态码‘200’就是访问成功,证明这个HTTP代理是有效的。

测试运行如下:

img

img



  • 稳定性:利用平均响应速度方差分析,我们可以发现稳定性如何较高。

计算公式如下:

S^2=1/n[(x1-x)^2+(x2-x)^2+……+(xn-x)^2]


简单来说,excel的里面的方差计算公式VAR()可以帮助我们秒计算。善用excel~


  • 带宽测试部分代码如下:

    点击(此处)折叠或打开

    1. #测试带宽核心代码
    2. def test_proxy_bandwidth(auth_key,ip,proxies,thread_id,source_url):
    3.     res = {
    4.         "thread_id":thread_id,
    5.         "ip":ip.replace('\n',''),
    6.         "target_url":source_url,
    7.     }
    8.     file_size = 10 * 1024 * 1024 # 10 MB
    9.     start_time = time.time()
    10.     downloaded_size = 0
    11.     try:
    12.         response = requests.get(source_url, proxies=proxies, stream=True, timeout=30)
    13.         dirname = f"./{auth_key}_{ip}"
    14.         with open(f'{dirname}', 'wb') as f:
    15.             for chunk in response.iter_content(chunk_size=8192):
    16.                 f.write(chunk)
    17.                 downloaded_size += len(chunk)
    18.                 f.flush()
    19.                 if downloaded_size >= file_size:
    20.                     break

    21.         elapsed_time = time.time() - start_time
    22.         download_speed = downloaded_size / elapsed_time / 1024 # KB/s

    23.     except Exception as e:
    24.         elapsed_time = time.time() - start_time
    25.         download_speed = downloaded_size / elapsed_time / 1024 # MB/s

这里是下载10M文件,记录测试网速。

测试运行如下:

img



7.豌豆代理HTTP代理测试结果

img

豌豆代理的带宽和平均下载速度无法给到,我测试带宽连接这个:

img

但豌豆代理均显示无法连接,具体是什么原因,就无从得知了。

稳定性还行,在3以内,但是可用率略差了点,对上该厂商的价格来说,无功无过吧。

这里要说一点是,豌豆代理购买方式有局限性,HTTP代理的种类不多,如果需要静态IP或者独享IP的,这家可能不是那么合适。这点对比起来青果网络的产品品类齐全,目前我们所使用到的HTTP代理使用场景对应的HTTP代理,基本都能找到,这点算是青果网络属于一枝独秀了。

img

img

相比而言,青果网络HTTP代理的响应速度快,可用率高,稳定性也更好,尤为突出的是,专门为企业用户设置了企业池,可以享受更高质量的HTTP代理,IP类型更丰富,日去重IP高达220+W。

青果网络的HTTP代理各项测试数据如下:

img

很顶。


而且,豌豆代理官网说自己延迟≤10ms,这,直接蚌埠了,10ms,实际测试数值相信大家也看到了,不知道品宣是不是少打了个0?

img

不如和青果网络一样直接说自己≤100ms,反正这一区间,大部分爬虫er都是能接受的,别太浮夸了哇。

img


希望这篇测试文章,能够帮到那些在观望HTTP代理哪家强的人。

阅读(302) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~