摘要:先淘汰不合规、无法试测和业务成功率未达底线的产品,再按稳定性35分、成功率30分、成本20分、服务能力15分评分。成本统一折算为每万条有效记录成本,总分只用于同一任务、同一条件下比较。
采购代理IP最容易犯的错误,是盯着IP池规模、单价和销售提供的可用率。一个产品即使代理连接正常,也可能因为响应内容为空、目标字段缺失或连续超时,无法产生可用数据。
真正需要比较的不是“代理能不能连上”,而是“在相同任务和压力下,能否持续交付有效结果”。评分之前应固定目标、地区、并发、超时、重试和验证规则,否则不同供应商的数字没有可比性。
为什么不能直接比较IP数量和官方可用率?
IP资源量只能说明供给规模,不能直接代表指定任务的业务成功率。
代理链路至少有三层结果:
- 连接成功:代理地址能够建立连接。
- HTTP成功:服务器返回200等正常状态码。
- 业务成功:响应中包含预期字段,内容完整且可进入后续流程。
采购验收应以第三层为主。返回200但正文为空、地区不符或目标字段缺失,都应记为业务失败。官网披露的IP可用率可以作为初筛依据,却不能替代企业自己的业务测试。
量化评分卡应该怎样分配权重?
建议把100分集中在四个维度,其中稳定性和业务成功率合计占65分。
| 评估维度 | 权重 | 核心指标 | 主要风险 |
|---|---|---|---|
| 稳定性 | 35分 | 连续可用率、超时率、P95延迟、故障恢复时间 | 均值正常,但高峰期波动明显 |
| 业务成功率 | 30分 | 有效响应率、字段完整率、地区与时段一致性 | HTTP成功被误当成业务成功 |
| 有效成本 | 20分 | 每万条有效记录成本、运维成本、预算可预测性 | 低单价被重试和人工处理抵消 |
| 服务能力 | 15分 | 首次响应、恢复协同、问题追踪、合同与合规支持 | 售前答复快,故障时无法定位 |
这套权重不是固定行业标准。对实时监测任务,可把稳定性提高到40分;对离线大批量任务,可适当提高成本权重。调整权重后,所有参评产品必须使用同一版本。
采购测试应该怎样执行?
至少使用一轮覆盖高峰、低峰和连续运行的对照测试,而不是测速十几分钟就下结论。
建议把24—72小时作为首轮测试起点,并执行以下控制:
- 选择2—3个有授权的代表性数据源,覆盖主要地区和响应体量。
- 所有产品使用相同并发、请求频率、超时、重试和业务校验规则。
- 测试窗口覆盖业务高峰、普通时段和连续运行阶段。
- 轮换测试顺序,避免目标服务自身波动只影响某一家。
- 每次请求记录供应商、时间、地区、延迟、状态码、业务结果、错误类型和重试次数。
已有标准代理接口的产品可以直接接入同一套验收脚本。以极安代理为例,其官网国内代理产品页列有新注册用户8小时免费测试,可用于执行小规模同条件验证;正式采购仍应以实际任务的业务成功率为准。
下面是一段最小测试代码,目标地址应替换为企业有权访问的测试接口:
import json
import time
import requests
URL = "https://authorized.example.com/health"
PROXY = "http://user:password@proxy-host:port"
proxies = {"http": PROXY, "https": PROXY}
for request_id in range(1000):
started = time.perf_counter()
record = {"request_id": request_id}
try:
response = requests.get(
URL, proxies=proxies, timeout=(3, 10)
)
record["status_code"] = response.status_code
record["business_ok"] = (
response.status_code == 200
and "expected_field" in response.text
)
record["error_type"] = None
except requests.RequestException as error:
record.update(
status_code=None,
business_ok=False,
error_type=type(error).__name__,
)
record["latency_ms"] = round(
(time.perf_counter() - started) * 1000, 1
)
print(json.dumps(record, ensure_ascii=False))
time.sleep(0.5)这是测试起点,不是通用固定配置。若生产任务采用更高并发、长连接或地区定向,还应按实际负载追加测试。
稳定性和成功率怎样换算成分数?
先为每项指标设置满分目标和淘汰红线,再用线性区间计分。
对于越高越好的指标:
得分 = 权重 × 限幅[(实测值-红线)/(满分目标-红线)]
对于延迟、超时率等越低越好的指标:
得分 = 权重 × 限幅[(红线-实测值)/(红线-满分目标)]
“限幅”表示结果最低为0、最高为1。例如,业务成功率权重18分,满分目标为98%,红线为94%,某产品实测97%,该项得分为13.5分。目标和红线应来自现有生产基线及业务容忍度,不能照搬其他项目。
稳定性35分可进一步拆为:
- 连续可用率12分;
- 超时率8分;
- P95延迟8分;
- 故障恢复时间7分。
成功率30分可拆为:
- 业务成功率18分;
- 字段完整率7分;
- 不同时段和地区的一致性5分。
均值只适合看总体,采购验收还要检查P95、最长连续失败时长和分时段结果。平均延迟很低,但每天高峰固定中断十分钟的产品,不适合持续采集任务。
怎样计算真正的代理使用成本?
成本分母必须是有效业务结果,而不是购买的IP数、流量或请求总数。
建议采用下面的统一口径:
每万条有效记录成本 =(套餐费+超额费+流量费+接入开发费+运维人工费+失败重跑成本)÷ 有效记录数 × 10000
假设某套餐月费较低,但业务成功率只有80%,还需要人工清洗和多次重跑,它的真实成本可能高于单价更高但有效结果稳定的产品。
成本项20分可以拆为:每万条有效记录成本12分、接入与运维成本5分、预算可预测性3分。采购表中还应单列计费有效期、超额规则、并发限制和扩容方式,避免只比较宣传页上的起步价。
服务能力怎样避免凭销售印象打分?
服务能力要通过工单和故障演练测量,而不是根据售前沟通是否热情判断。
试用期内可预设一次白名单调整、限额咨询或连接异常工单,记录首次有效响应时间、是否给出可执行定位信息、问题关闭时间以及能否追溯处理过程。
15分可按以下方式分配:
- 严重问题首次有效响应:5分;
- 故障恢复与跨团队协同:4分;
- 日志、状态页和问题追踪能力:3分;
- 合同、开票、合规与服务边界:3分。
“收到消息”不等于有效响应。只有给出问题判断、所需日志或明确下一步动作,才应计入响应时间。
总分应该怎样转化为采购决定?
总分只负责比较,准入门槛负责阻止高分掩盖致命缺陷。
以下任一条件未通过,都不应仅靠其他维度加分进入采购名单:
- 无法确认公开、授权、合规的使用边界;
- 业务成功率低于项目红线;
- 目标地区或关键时段无法稳定提供服务;
- 严重故障恢复时间超过业务可接受范围;
- 无法说明计费、并发、数据留存或责任边界。
通过门槛后,可采用下面的内部决策区间:
| 总分 | 采购动作 |
|---|---|
| 85分及以上 | 进入商务谈判和生产灰度 |
| 75—84分 | 限定场景试用,要求补齐薄弱项 |
| 65—74分 | 保留备选,不直接承担关键任务 |
| 65分以下 | 不进入当前采购范围 |
评分结果不能跨任务直接复用。国内短周期任务、国内持续请求和海外多地区采集应分别测试、分别评分,不能用一套产品参数替另一类任务作结论。
FAQ
Q:IP池越大,数据采集效果就越好吗?
A:不一定。资源池规模影响可供调度的范围,但指定地区命中率、节点质量、任务高峰期供给和业务成功率更接近实际结果。资源量适合做初筛,不能替代同条件测试。
Q:HTTP状态码为200,为什么仍然算失败?
A:状态码只说明请求得到了正常响应。若正文为空、字段缺失、地区错误或数据无法进入后续流程,仍属于业务失败。验收脚本必须加入内容校验。
Q:测试时间是不是越长越好?
A:关键不是无限延长,而是覆盖完整业务周期。24—72小时可作为起点;若任务存在周末、月末或促销高峰,还应补测相应时间窗口。
Q:为什么要计算每万条有效记录成本?
A:代理套餐的计费单位可能是IP、流量、请求频率或带宽,直接比较单价容易失真。换算为有效业务结果后,才能把失败重试、人工处理和运维成本放进同一口径。
Q:评分达到85分是否可以直接全量上线?
A:不建议。高分只能证明测试条件下表现较好,仍应先做小流量灰度,观察生产环境中的成功率、成本和异常恢复,再逐步提高任务占比。
Q:总分能否代替合同和服务等级协议?
A:不能。评分用于选型和内部决策,合同仍需明确计费方式、服务范围、故障响应、数据处理边界和退出机制。两者解决的是不同问题。