1.为什么要测试HTTP代理?
在当今互联网大数据时代,数据采集日益发展,HTTP代理在其中扮演着重要的角色。和其他产品一样,在使用HTTP代理的时候我们也会遇到诸如:稳定性、匿名程度、响应速度、IP池可用率等问题,如何对HTTP代理进行测试,才能满足我们的需求?
目前市面上很多HTTP代理都有提供试用,购买之前大部分人都会试用,但是我们很经常看到,很多uu在互动社区评判HTTP代理服务提供商提供的产品购买后使用效果很差。
秉着对真相的探究,我自费购买青果网络HTTP代理进行测试供大家参考。那一起看看测试结果吧!
2.测试HTTP代理的注意事项
在测试之前,我们需要注意的是:
3.HTTP代理测试项目
无论测试哪家HTTP代理,逃不开这几项:可用率、响应速度、稳定性、匿名度、安全性测试,通常我们会结合多种测试方法和工具,以此来全面评估这家HTTP代理的质量,衡量是否值得购买。不过具体到个人,还是需要根据实际需求和应用场景来定制调整的。
市面上的HTTP代理服务提供商有很多,可以综合对比后,挑选自己合意的几家来测试。
本次综合了风评和{BANNED}{BANNED}{BANNED}最佳佳佳终成本,这次我购买了青果网络的动态共享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.测试数量
青果我买的是按量1W个的。
7.测试过程
这次,我把响应速度和可用率结合在一起,测试青果网络HTTP代理对百度站点的连通性和请求延迟。
-
有效性+延迟代码如下:
-
import logging
-
import time
-
from concurrent.futures import thread
-
import requests
-
thread_pool = thread.ThreadPoolExecutor(max_workers=30)
-
session = requests.session()
-
-
-
# 测试代理ip有效性核心代码
-
def test_proxy_usability(proxy_ip,thread_id):
-
target_url = ''
-
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)
-
res = {
-
"thread_id":thread_id,
-
"ip":ip.replace('\n',''),
-
"target_url":target_url,
-
"error_info":"",
-
"resp_code":resp.status_code,
-
"ms":resp.elapsed.total_seconds() * 1000,
-
}
-
if resp.status_code == 200:
-
status = "成功"
-
else:
-
pass
-
res["status"] = status
-
print(res)
-
except Exception as e:
-
failed_reason = "访问失败:%s" % (e)
-
res = {
-
"thread_id":thread_id,
-
"ip":ip.replace('\n',''),
-
"target_url":target_url,
-
"error_info":failed_reason,
-
"resp_code":"",
-
"ms":"",
-
"status":status
-
}
-
print(res)
-
-
if __name__ == '__main__':
-
ips = [
-
"125.78.226.82:37175",
-
"123.189.96.163:12565",
-
"222.90.149.59:46327",
-
"59.58.209.253:60819",
-
"122.232.195.108:11051",
-
"182.34.34.209:51063",
-
"115.213.205.160:40613",
-
"117.93.187.241:39562",
-
"60.19.171.147:10698",
-
"182.204.178.41:30182",
-
"119.41.193.136:14093",
-
"123.189.102.203:12565",
-
"49.64.209.99:58886",
-
"121.227.34.220:52161",
-
]
-
for i,ip in enumerate(ips):
-
thread_pool.submit(test_proxy_usability,ip,i)
-
time.sleep(30)
青果网络代理IP测试运行如下:
计算公式如下:
S^2=1/n[(x1-x)^2+(x2-x)^2+……+(xn-x)^2]
简单来说,excel的里面的方差计算公式VAR()可以帮助我们秒计算。善用excel~
-
import logging
-
import time
-
from concurrent.futures import thread
-
import requests
-
thread_pool = thread.ThreadPoolExecutor(max_workers=30)
-
session = requests.session()
-
-
-
#测试带宽核心代码
-
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
-
update_res = {
-
"down_status":1,
-
"download_s":elapsed_time,
-
"download_speed":int(download_speed),
-
"download_size":downloaded_size,
-
}
-
res.update(update_res)
-
print(res)
-
-
except Exception as e:
-
elapsed_time = time.time() - start_time
-
download_speed = downloaded_size / elapsed_time / 1024 # MB/s
-
update_res = {
-
"down_status":0,
-
"download_s":elapsed_time,
-
"download_speed":int(download_speed),
-
"download_size":downloaded_size,
-
}
-
res.update(update_res)
-
print(res)
青果网络代理IP测试运行如下:
{BANNED}{BANNED}{BANNED}最佳佳佳后根据我们的平均下载速度,来计算带宽。
带宽的计算公式:
带宽=平均下载速度10248/1000/1000
8.青果网络HTTP代理测试结果
9.特点
-
价格:价格我贴上了,这个是能说的吗?从结果来看,青果网络的HTTP代理是蛮优质的,但这个价格属实出乎意料,对比一下其他家,可能人家打了骨折才是他们现在这个价格,很真诚。
-
安全性:验证方式分为白名单验证和帐密验证,可以有效控制使用权限。
-
使用API提取HTTP代理不扣费,使用才计费。
-
存活周期1-5分钟都有分类,可以根据自己的需求精准设置。
-
值得一提的是,青果网络除了有针对国内的HTTP代理,也有全球HTTP代理的资源,如果有需要的uu们可以自己去看看,这边就不再展开说了。
10.总结
综合测试数据来看,青果网络的HTTP代理还是推荐的,保证了高可用率,还能保持稳定性和极快的响应速度,优质的高匿池子结合价格简直是加分项,算得上是一款高性价比的HTTP代理了。
纵观青果网络的HTTP代理服务产品,我们可以发现,他们家的产品种类很是齐全,基本我们遇到的业务场景都能找到对应的产品种类,产品细化对于很多小白而言很友好,HTTP代理的存活时长也不会水,范围都大致在自己选的那个时段内,十分坦诚,是我们互联网爬虫数据采集的好搭子!
而且不仅从使用使用场景做了产品细分,对使用用户也的IP池做了细分:普通池(方便个人开发者)和企业池;甚至对于购买方式也有:按时和按量购买。
属于我们想要的,它都有!
我们测试后可以发现,青果网络相对而言没有长短板,总体都处于一个比较平衡稳定,价格又合理的状态,所以相对而言会更推荐。
希望这篇测试文章,能够帮到那些在观望HTTP代理哪家强的人。
阅读(455) | 评论(0) | 转发(0) |