一、先看这段跑崩了的配置
task: competitor_monitor
interval: 300s
targets: 12
proxy:
source: free_list # 早上从采集站拉的
rotate: every_request
timeout: 8s
这是三个月前我写的竞品监控定时任务:12 个竞品站,每 5 分钟一轮,一天下来 3456 次请求。头两周跑得挺顺,第三周日志里的 403 从每天十几条涨到 1600 多条,整体封禁率 47%。第一反应是加频率限制,结果一点用没有——问题不在频率,在 IP。
交代下背景:我自己带个小工作室,20 多个游戏账号要挂机,另外帮朋友的电商团队做竞品价格和上新监控。两边都要代理 IP,但需求完全不是一回事。游戏多开那边我另写过一篇,这篇只讲竞品监控这条线。
二、问“代理IP哪家好”之前,先分清你要哪种 IP
代理IP哪家好这个问题,本身就问偏了。竞品监控有三个硬约束,把它们写清楚,选型就变成了填空题。
- 会话要粘:商品详情页要翻 3-5 页才拿得到价格和库存,中途换出口 IP 属于会话漂移,直接弹验证码。
- 目标要固定:12 个站全是国内站点,出口必须是三大运营商,套海外 IP 反而更容易被盯上。
- 周期要长:这是 7×24 长跑的活,IP 池的衰减速度比单价重要得多,便宜但两周就废的池子等于白买。
我一开始以为并发才是关键,硬压到 20 并发,封禁率只从 47% 掉到 43%。又跑了两周数据才看清:影响封禁率的第一因素是 IP 复用间隔,不是并发数。同一个 C 段 IP 在 48 小时内二次访问同一站点,被拦的概率直接翻倍。
三、三档预算的实测矩阵与决策树
把手上试过的方案按预算分三档,数据来自连续 14 天的监控日志统计,同一套爬虫逻辑,只换代理出口。
| 档位 | 代表方案 | 单价 | 平均延迟 | 14 天封禁率 | 适合谁 |
|---|
| 低档 | 公共免费池 | 0 元 | 800-2400ms | 46.8% | 一次性小规模验证 |
| 中档 | 短效动态 IP(按量) | 0.0022 元/IP 起 | 60-180ms | 4.1% | 每天十万次以内的定时采集 |
| 高档 | 隧道代理(粘性会话) | 16 元/天起 | 8-15ms | 1.2% | 7×24 长跑 + 多步会话 |
低档那行不是黑免费代理,是我自己真跑过。免费池最致命的地方不是慢,是IP 复用不可控——你永远不知道这个 IP 半小时前被谁拿去刷过哪个站。中档我现在主力在用,按 0.0022 元/IP、每天 3456 次请求算,一个月不到 230 块;这个价差我当时真没看懂,比预想低不少。
不想看表就按下面的顺序走:
- 单个请求就能出结果(只取首页快照)→ 短效动态 IP,每次请求换一个。
- 一个任务要连续 3 次以上请求同一域名 → 上粘性会话,周期设 90-180 秒。
- 7×24 不间断 + 目标站有 Cloudflare 类防护 → 隧道代理,按天计费比按 IP 计费划算。
- 预算卡死且量小 → 先用按量动态 IP 试跑一周,拿到真实封禁率再决定升不升级。
粘性会话周期这个数我调了四次。30 秒太短,翻到第三页就断;600 秒太长,同一个 IP 挂着不走反而显眼。90-180 秒是这套逻辑下的拐点。
四、迁移后的账,和两个没人提的坑
换隧道代理之后,爬虫代码只改了三处:替换代理地址、加账密认证、把 timeout 从 8s 提到 15s。跑了 30 天:封禁率从 47% 降到 1.2%,可用率稳定在 99.9% 上下;延迟从 800ms+ 压到 10ms 以内,单轮采集从 6 分钟缩到 40 秒;月成本从“免费”变成 480 元,但省掉的验证码处理和人工排查时间远超这个数。
- 坑一:白名单和账密认证别同时开。我图省事两个都配了,隧道侧按白名单放行、爬虫侧又传账密,冒出一批连接直接被拒的日志,排查两小时。
- 坑二:隧道按会话计费,任务里的空转轮询(目标没更新也照发请求)会把账单抬高一大截。建议在业务层先做变更检测,再决定发不发请求。
说句实在话:这套方案在我们每天几千次的量级够用,如果你日均请求到千万级,按天计费就不划算了,得回去谈按量阶梯价。具体参数可以直接去 mayihttp.com 对着看,别照抄我这套配置。