账单摊开:1732元里,IP其实只占一小半
上周把过去半年的订阅记录导出来算了一遍:代理IP这一项花了 1732元。我做的业务不复杂——一个内容审核系统,每天把几百个落地页丢进无头浏览器,检查页面是否存在违规文案、诱导链接和违规素材。页面必须真实渲染,所以走的是浏览器代理IP,而不是纯HTTP请求。
这1732元里,隧道代理包天占了1440元(16元/天 × 90天),剩下292元是按量提取的动态短效IP,用在需要城市级切换的抽查任务上。看着不多。但往前翻两个月,我用的是免费公开代理,账面0元——那两个月我额外搭进去 41个小时 处理封禁、超时和人工重试。按我接私活的报价折算,那是四千多块的工时。
问题就出在这:免费代理的成本从来不写在账单上。
浏览器代理IP的隐性成本,是“重试税”
免费代理的封禁率我记录过一段时间:68%。这个数字的杀伤力不在“被封”本身,而在于它会放大所有下游成本。
假设今天要跑1万次有效检测,68%的封禁率意味着实际要发起约 3.1万次 请求。带宽、CPU、无头浏览器的内存全部按3倍算,任务队列也按3倍排。我一开始以为瓶颈在IP池大小,后来跑了一周日志才发现,真正的问题在重试逻辑把Chrome实例吊死了,内存涨到4G才被OOM杀掉。
还有个更隐蔽的点——浏览器指纹和出口IP的地理信息不一致。用免费代理时,IP定位在某个三线城市,而Chromium上报的时区是Asia/Shanghai、Accept-Language是en-US,页面JS一读 Intl.DateTimeFormat().resolvedOptions().timeZone 就对不上。这种情况下,IP本身再“高匿”也没用,行为特征早就暴露了。换成付费池后我把时区和语言跟着IP走,同一批目标站的 首屏验证码触发率从27%掉到3%。
三档方案的真实成本对比
口径说明:以每天1万次有效检测为基准,人工时薪按120元折算,动态短效按每IP复用10次计算。
| 方案 | 每万次有效请求成本 | 实测封禁率 | 可用率 | 日均人工投入 |
|---|
| 免费公开代理 | 0元(+人工110元) | 68% | 31% | 55分钟 |
| 动态短效(按量提取) | 约2.2元(+人工24元) | 4.1% | 97.8% | 12分钟 |
| 隧道代理(包天) | 约1.6元(+人工6元) | 1.3% | 99.6% | 3分钟 |
表格里最扎眼的是最后一列。免费代理每天烧掉55分钟人工,折合 110元,是隧道代理整天费用的近7倍。它不是便宜,是把账单从钱包挪到了时间上。
不过这结论有边界。如果量级从每天1万次涨到十万次,隧道代理16元/天就不够用了——单个隧道出口的并发撑不住,得改成API提取池加本地调度,那时候按量计费反而更划算。所谓“最便宜”是跟着量级走的,别照搬。
我现在的配置:隧道打底,按量补位
跑顺之后我的结构很简单:隧道代理承担80%的常规巡检,动态短效IP负责20%的城市定向抽查。代理每次从接口现取,绝不写死进配置:
import requests
from playwright.sync_api import sync_playwright
def get_proxy():
r = requests.get('https://api.example.com/get?num=1&city=310000', timeout=5).json()
d = r['data'][0]
return 'http://{user}:{pwd}@{ip}:{port}'.format(**d)
PROXY = get_proxy()
with sync_playwright() as p:
browser = p.chromium.launch(proxy={'server': PROXY})
ctx = browser.new_context(
timezone_id='Asia/Shanghai',
locale='zh-CN',
user_agent=UA_POOL.pop()
)
page = ctx.new_page()
page.goto(target, timeout=15000)
三个参数别省。timezone_id 和 locale 要跟着IP的城市走,user_agent 每次从池里换一个和当前Chromium内核版本对得上的。我第一次没做版本对齐,UA写Chrome 118、实际内核是120,某电商站的风控直接返回空页面——不报错,就是白屏,排查了很久。
效果我盯三个数:可用率、首屏耗时、每千次重试次数。换成隧道+按量组合后,两周统计下来可用率 99.6%,平均响应在 8ms 上下,重试从每千次31次降到4次。
回到开头那笔账。隧道代理16元/天这个档位在我这个量级里性价比最好,动态池按量部分从 0.0022元/IP 起,配合城市筛选够用,接入细节我一般在 mayihttp.com 上看文档。如果你也在做内容审核,别只盯IP单价,把重试率和人工时间一起算进去——账会难看得多,但会更真实。