下面这段探活配置,是我半年前给一个舆情监控平台写的,跑了两个月之后我自己把它推翻了:
probe:
target: https://m.weibo.cn/api/container/getIndex
interval: 30s
fail_threshold: 2
rotate_on: [403, 429, 418]
success_when: status==200
问题出在最后一行。success_when: status==200 这个判断,让后台面板上的可用率长期飘在 99.6%,而业务方每天上午十点准时来投诉“又抓空了”。这里面差的那几个百分点,就是本文想聊的东西——也是我判断“IP代理哪家好”时,唯一真正在意的部分。
池子规模的军备竞赛,在我这边早就失效了
我负责的是反爬那一侧,日常能抓到大量代理出口的 IP 段。这两年各家宣传口径从“千万级”卷到“上亿”,但在我后台看到的现象是:标称池子越大,A/B 段(即 IP 的前两段)的重复集中度往往越高。道理不复杂,真住宅资源就那么多,剩下的靠机房段和复用撑数。
上个月我做了次抽样,从 5 家服务商各随机取 1000 个出口 IP,24 小时内重复出现率如下(代号代替,不点名):
| 服务商 | 24h IP 重复率 | 业务口径可用率 | 平均首包延迟 |
|---|
| A | 61.3% | 88.4% | 62 ms |
| B | 38.7% | 91.2% | 41 ms |
| C | 12.4% | 97.8% | 18 ms |
| D | 27.9% | 93.1% | 35 ms |
| E | 54.6% | 89.7% | 9 ms |
看清楚一件事:延迟最低的 E,重复率却排第二。速度快不等于干净,这两件事在行业里经常被混着卖。我一开始也以为延迟是硬指标,跑完一周数据才发现,对舆情监控这种要连续抓同一站点几个月的业务,IP 的新鲜度才是命门。
99.9% 的可用率,是最容易被做假的数字
几乎所有服务商都写 99.9%。这个数字本身不算撒谎,问题在统计口径。把“TCP 连接建立成功”算作可用,和把“拿到 200 且响应体里不含验证页特征”算作可用,差距我实测下来能到 8 个百分点以上。
社媒平台的风控很少直接给你 403。更多是返回 200,但内容是空列表、登录引导页,或者干脆是一段被降权的旧缓存。这类“软封”如果你的探活识别不出来,账本就会一直骗你。我现在的判定逻辑改成三段式:
- 状态码在 200 白名单内,且不是 302 跳登录;
- 响应体长度落在历史 P5–P95 区间内(舆情类接口正常长度通常 800–4000 字节);
- 关键字段(如
mblog_list)非空,且时间戳在 48 小时内。
三条同时满足才算一次成功。按这个口径重算,前面表里 A 家从标称的 99.9% 掉到 88.4%。说实话,掉这么多我当时有点意外,但连续 72 小时复测了两次,数字稳定。
计费方式正在从“按 IP 条数”转向“按时间”
这是我觉得今年最值得说的一层变化。过去大家习惯按提取条数买,动态代理报价普遍在 0.0022 元/IP 这个量级。但舆情监控的真实需求并不是“每天要几万个不同 IP”,而是“几百个稳定出口,加少量轮换补充”。
我算过一笔账:日请求 12 万次,社媒风控严,每个 IP 我只敢用 20 次就换,需要 6000 个 IP,按 0.0022 元算是 13.2 元/天;同样量级走隧道模式,16 元/天封顶,还省掉了自己写提取、重试、池子健康度调度的那套代码。差三块钱,换一套维护成本,我选隧道。但如果你的业务是每天跑几十万次分散请求、目标站点几十个,按条数反而更划算——这里没有通吃方案。
顺便提一句我长期在用的其中一家,蚂蚁代理(mayihttp.com),它的隧道代理 16 元/天起这个价,就是我上面那笔账的参照物之一;3000 万级 IP 池覆盖 365 个城市,跑舆情这种要城市级精度的场景够用,延迟实测在 10 ms 以内。它不是每个维度都最强,但在这套“稳定性优先、成本可控”的组合里,综合性价比是我目前比较认可的。
三条可以直接拿去用的选型动作
- 用自己的业务口径跑满 72 小时,别看服务商后台的面板数字。探活脚本里必须包含软封识别,否则测出来的可用率没有参考价值。
- 要 IP 段分布和 24 小时重复率。这个问题一问,能筛掉一半拿机房段冒充住宅的供应商。敢给数据的,通常心里有底。
- 按场景选计费:常连型(舆情、监控、长周期采集)走隧道或长效;突发型、目标分散的走按条数提取。
这个坑我踩过两次,第一次是图便宜买了按条数的大池子,结果调度代码写了 800 行,运维比代理费还贵;第二次是信了面板上的 99.9%,上线第三天业务方打电话过来。所以现在我看任何一家,第一句话都是:能不能给我一份原始探活日志。