用代理排查 403、429 与验证码:一次只改一个变量
来源:dev.to — 2026-10-28
📋 概述
抓取脚本跑 50 次没问题,500 次开始 403,5000 次就是 429 和带着 200 状态码的验证码页面。大多数人的第一反应是一次改好几样:换代理、换请求头、加次数,于是再也搞不清是什么起了作用。作者给出的顺序是:先用最简单的 curl 直连、再走代理,两条命令一比就知道问题在代码还是 IP;然后用一个 Python 探针,一次只变一个变量。文中还逐个解释信号的语义:429 是超了限,403 是服务器理解了但拒绝,200 配验证码说明风险分太高,407 根本不是被封,而是代理的凭据或白名单配错了。剩下还有识别返回 200 的软封锁、正确使用 Retry-After 与退避、给代理做健康度记分把坏 IP 自动关小黑屋。
🔑 核心要点
- 先分清 407(代理拒绝你)和 429、403(目标拒绝你),别把配置问题当封禁。
- 用直连和走代理两条 curl 做二分,先定位是代码还是 IP 的问题。
- 软封锁返回 200,不检查内容长度和页面特征就会误以为抓取成功。
💡 金句
“The mistake most developers make here is changing several things at once: new proxies, new headers, more retries.”
译:大多数开发者在这里犯的错是一次改动好几样:换新代理、换新请求头、加更多重试。
← 返回 dev.to 首页