1.为什么要测试HTTP代理?
在当今互联网大数据时代,数据采集日益发展,HTTP代理在其中扮演着重要的角色。和其他产品一样,在使用HTTP代理的时候我们也会遇到诸如:稳定性、匿名程度、响应速度、IP池可用率等问题,如何对HTTP代理进行测试,才能满足我们的需求?
目前市面上很多HTTP代理都有提供试用,购买之前大部分人都会试用,但是我们很经常看到,很多uu在互动社区评判HTTP代理服务提供商提供的产品购买后使用效果很差。
我们在很多平台,都能看到快代理的铺的广,经查也是一家老牌HTTP代理厂商,风评似乎不错,所以这次我们也一起测试看看吧!
2.测试HTTP代理的注意事项
在测试之前,我们需要注意的是:
-
测试环境应该符合实际应用环境
-
测试频率要符合我们日常做数据采集的使用习惯
-
测试IP的节点范围要广
-
不同应用场景下的不同需求,需要选择适合的测试方法和指标
3. HTTP代理测试项目
无论测试哪家HTTP代理,逃不开这几项:可用率、响应速度、稳定性、匿名度、安全性测试,通常我们会结合多种测试方法和工具,以此来全面评估这家HTTP代理的质量,衡量是否值得购买。
ps:市面上的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代理带宽的限制、代理服务器的性能等。
4.测评环境
良好的测试环境,需要在稳定的网络环境下测试,以及,至少跑得动的设备,手动加狗头。
这次测评,我是使用 python 30个线程池进行多线程测试,其中电脑配置如下:
5.测试链接
我们熟悉的度娘
6.测试数量
提取1000个HTTP代理进行测试。
7.测试过程
这次,我把响应速度和可用率结合在一起,测试快代理对百度站点的连通性和请求延迟。
-
有效性+延迟部分代码如下:
# 测试代理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文件,记录测试网速。
测试运行如下:
8.快代理HTTP代理测试结果
9.特点
-
快代理发布过公告,页面的价格即最终价格,对不会砍价的人友好了;
-
产品种类还算齐全。
10.总结
来总结一下:
就本次测试结果而言,快代理的综合表现也还可以,不过他们在节点和日去重方面会比我们之前测试过的青果网络略逊色一点。
PS:青果网络覆盖的城市节点有200+个,现在还开通了海外HTTP代理,节点应该有更多。
在日去重方面,青果网络分为普通池子日去重60W,企业池子220+W。
说回快代理。
本次,还发现快代理有一个弊端,是和我之前使用很多HTTP代理服务商都有的弊端:IP池子在刚开始做数据采集的时候,成功率确实可以,IP可用率还蛮高,但是随着时间的推移,IP可用率下降了,成功率降得非常厉害,此时,他们是没办法给我有效的解决方案的。这时候,我要么再挑一家HTTP代理服务商来,要么就先暂停这个项目。
甲方催促and领导的夺命连环call好几次让我差点崩。
这里不得不提,同样的情况,我在使用青果网络的时候也遇到过,但是青果网络能为我迅速做出调成,让我的IP可用率提升上去,成功率也能跟着上,这点非常难得。
他们家的各项数值:
我们从他们测试后得出的高可用率、高稳定性、高匿名度,都可以说青果网络HTTP代理的产品质量更优质。
纵观青果网络HTTP代理产品,我们能够发现,他们的产品品类丰富,HTTP代理的使用场景在这里都能找到对应的产品,描述清晰,对i人非常友好,如果是企业代表想知道更多,还有客服1v1为你定制方案,句句有回应,e人的天堂。
他们对个人开发者用户和企业用户专门设置了不同的池子,我司此前是以企业代表身份使用的企业池,用来做数据采集成功率非常高,可以说是目前我们使用过成功率最高,价格又十分美丽的HTTP代理了。
而本次我个人使用的是普通池,测试后效果也很明显:各方面都表现得非常优秀!
听着好像青果网络似乎没有缺点?
实际上有的,他们海外HTTP代理,在国内无法使用。但仔细一想,出于合规考虑,好像也不是他们的问题,总的来说,会更推荐青果网络。
希望这篇测试文章,能够帮到那些在观望HTTP代理哪家强的人。