在当今互联网大数据时代,数据采集日益发展,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个线程池进行多线程测试,其中电脑配置如下:
4.测试链接
依然是我们的度同学
5.测试数量
基于概率,选择提取1000个HTTP代理进行测试。
6.测试过程
这次,我把响应速度和可用率结合在一起,测试豌豆代理对百度站点的连通性和请求延迟。
- 有效性+延迟部分代码如下:
importloggingimporttimefromconcurrent.futuresimportthreadimportrequeststhread_pool=thread.ThreadPoolExecutor(max_workers=30) session=requests.session() # 测试代理ip有效性核心代码deftest_proxy_usability(proxy_ip,thread_id): target_url='http://www.baidu.com'headers= { "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" } proxies= { 'http': f'http://{proxy_ip}', 'https': f'http://{proxy_ip}' } try: status="失败"resp=session.get(target_url,headers=headers, proxies=proxies, timeout=5) ifresp.status_code==200: status="成功"else: passexceptExceptionase: pass
状态码‘200’就是访问成功,证明这个HTTP代理是有效的。
测试运行如下:
- 稳定性:利用平均响应速度方差分析,我们可以发现稳定性如何较高。
计算公式如下:
S^2=1/n[(x1-x)^2+(x2-x)^2+……+(xn-x)^2]
简单来说,excel的里面的方差计算公式VAR()可以帮助我们秒计算。善用excel~
- 带宽测试代码如下:
#测试带宽核心代码deftest_proxy_bandwidth(auth_key,ip,proxies,thread_id,source_url): res= { "thread_id":thread_id, "ip":ip.replace('\n',''), "target_url":source_url, } file_size=10*1024*1024# 10 MBstart_time=time.time() downloaded_size=0try: response=requests.get(source_url, proxies=proxies, stream=True, timeout=30) dirname=f"./{auth_key}_{ip}"withopen(f'{dirname}', 'wb') asf: forchunkinresponse.iter_content(chunk_size=8192): f.write(chunk) downloaded_size+=len(chunk) f.flush() ifdownloaded_size>=file_size: breakelapsed_time=time.time() -start_timedownload_speed=downloaded_size/elapsed_time/1024# KB/sexceptExceptionase: elapsed_time=time.time() -start_timedownload_speed=downloaded_size/elapsed_time/1024# MB/s
这里是下载10M文件,记录测试网速。
测试运行如下:
7.豌豆代理HTTP代理测试结果
豌豆代理的带宽和平均下载速度无法给到,我测试带宽连接这个:
但豌豆代理均显示无法连接,具体是什么原因,就无从得知了。
稳定性还行,在3以内,但是可用率略差了点,对上该厂商的价格来说,无功无过吧。
这里要说一点是,豌豆代理购买方式有局限性,HTTP代理的种类不多,如果需要静态IP或者独享IP的,这家可能不是那么合适。这点对比起来青果网络的产品品类齐全,目前我们所使用到的HTTP代理使用场景对应的HTTP代理,基本都能找到,这点算是青果网络属于一枝独秀了。
相比而言,青果网络HTTP代理的响应速度快,可用率高,稳定性也更好,尤为突出的是,专门为企业用户设置了企业池,可以享受更高质量的HTTP代理,IP类型更丰富,日去重IP高达220+W。
青果网络的HTTP代理各项测试数据如下:
很顶了。
而且,豌豆代理官网说自己延迟≤10ms,这,直接蚌埠了,10ms,实际测试数值相信大家也看到了,不知道品宣是不是少打了个0?
不如和青果网络一样直接说自己≤100ms,反正这一区间,大部分爬虫er都是能接受的,别太浮夸了哇。
希望这篇测试文章,能够帮到那些在观望HTTP代理哪家强的人。