在当今互联网大数据时代,数据采集日益发展,HTTP代理在其中扮演着重要的角色。和其他产品一样,在使用HTTP代理的时候我们也会遇到诸如:稳定性、匿名程度、响应速度、IP池可用率等问题,如何对HTTP代理进行测试,才能满足我们的需求?
目前市面上很多HTTP代理都有提供试用,购买之前大部分人都会试用,但是我们很经常看到,很多uu在互动社区评判HTTP代理服务提供商提供的产品购买后使用效果很差。
熊猫代理作为一家运营了5 6年的HTTP代理服务提供商,受众群体也是有很大一部分,有蛮多uu们也在后台私聊我说想看这个家的数据。
这不就来了!
这次我使用熊猫代理进行测试供大家参考。
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.测试过程
这次,我把响应速度和可用率结合在一起,测试熊猫代理对百度站点的连通性和请求延迟。
- 有效性+延迟代码如下:
# 测试代理ip有效性核心代码 def test_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) if resp.status_code == 200: status = "成功" else: pass except Exception as e: pass
状态码‘200’就是访问成功,证明这个HTTP代理是有效的。
测试运行如下:
- 稳定性:利用平均响应速度方差分析,我们可以发现稳定性如何较高。
计算公式如下:
S^2=1/n[(x1-x)^2+(x2-x)^2+……+(xn-x)^2]
简单来说,excel的里面的方差计算公式VAR()可以帮助我们秒计算。善用excel~
- 带宽测试代码如下:
#测试带宽核心代码 def test_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 MB start_time = time.time() downloaded_size = 0 try: response = requests.get(source_url, proxies=proxies, stream=True, timeout=30) dirname = f"./{auth_key}_{ip}" with open(f'{dirname}', 'wb') as f: for chunk in response.iter_content(chunk_size=8192): f.write(chunk) downloaded_size += len(chunk) f.flush() if downloaded_size >= file_size: break elapsed_time = time.time() - start_time download_speed = downloaded_size / elapsed_time / 1024 # KB/s except Exception as e: elapsed_time = time.time() - start_time download_speed = downloaded_size / elapsed_time / 1024 # MB/s
这里是下载10M文件,记录测试网速。
测试运行如下:
7.熊猫代理HTTP代理测试结果
熊猫代理的产品,产品详情介绍要仔细看清楚,例如:动态代理,是机房IP,且不支持API接入;高效代理不支持地区选择,所以我们在使用之前一定要先了解清楚,是否有无法支持我们使用方式的点;
产品种类虽多,但产品介绍没有那么清晰,无法第一时间对应到各自的业务场景当中,最好还是需要和客服咨询一下;
IP有效时间产品详情介绍说是5分钟,但是使用下来普遍在2分钟左右;价格相对而言偏中高。
此时不得不把我们的优秀学生“青果网络”拉出来了,产品描述清晰,品类齐全,一看就能根据自己的业务场景找到对应的产品,也不需要啥客服了,当然想要和客服妹子聊聊以及有需求定制化的也是很OK的。
从之前测试来看,青果网络的HTTP代理无论从响应速度、可用率、带宽和稳定性来看,都表现得非常优秀,价格也是一般个人开发者和中小企业负担得起的区间。
他们的各项数值:
而且,就单IP0.0003的价格,一般情况下,我们只对他抱有希望,但也不多,不过青果网络它不按套路出牌,物美价优双管齐下,就冲这,不得不给大拇哥。
希望这篇测试文章,能够帮到那些在观望HTTP代理哪家强的人。