原理讲解2026年6月12日阅读约 5 分钟

爬虫为什么突然开始被封了

跑了三周好好的,现在全是 403。多数时候问题不在代理。这里是五个原因,按值得排查的顺序排列。

你这边什么都没改,现在每条请求都返回 403。第一反应是怪代理,然后去买更好的。在花钱之前,先把这份清单过一遍。它大致是按「最后查出来是谁的锅」的频率排序的。

1. 你的请求频率悄悄上去了

这是最常见的原因,而且遥遥领先。可能是你加了并发,可能是目标站的页面变慢了导致你的工作池开始重叠,也可能是某个重试逻辑在悄悄地对每个 URL 发三次。

去实测一下你对目标站的每分钟请求数,别信你设定的那个值。如果它爬上去了,就降下来,看看封锁是不是停了。

2. 你的指纹把你暴露了

如果从住宅 IP 发出去的请求一看就是自动化的,那这个住宅 IP 也救不了你。网站越来越多地会检查:

  • TLS 指纹(JA3/JA4)。 Python 的 requests 有一套很有辨识度的 TLS 握手。真实的 Chrome 不长那样。curl_cffi 这类库存在的意义就是解决这件事。
  • 请求头的顺序和大小写。 真实浏览器会按特定顺序发送一组特定的头。多数 HTTP 库不会。
  • 缺失的请求头。 没有 Accept-Language、没有 Sec-Ch-Ua、点进来的页面却没有 Referer。

如果问题出在指纹上,那么从数据中心升级到住宅帮不上忙。你只会为每一次被封付更多钱。

3. 网站那边上线了新东西

网站是会变的。新的 WAF、新的反爬服务商,或者在原有基础上收紧了规则。这种变化通常表现为一刀切式的断崖:周二还好好的,周三全是 403,中间没有过渡。

用真实浏览器、从一个住宅 IP 手动测一次。如果正常浏览器也被拦,那就是他们的问题,不是你的。

4. 粘性会话保持得太久

如果你把一个 IP 长时间攥在手里,往里灌一千条请求,那这个 IP 现在看起来就跟机房 IP 没两样,不管它实际在哪。粘性会话是用来维持登录状态的,不是用来跑量的。

把会话时间缩短,或者对那些不需要连续性的部分改成逐条请求轮换。

5. IP 被烧了

这种情况是有的,值得认真确认一下,别想当然。先确认这个 IP 是不是你付钱买的那种类型,自己查 IP 类型那篇讲了怎么查。然后做一个快速测试:把同一条请求换一个服务商的新 IP 跑一遍,或者干脆走你自己家的宽带。如果你自己的连接畅通无阻而代理不行,那这个池子在这个目标站上有问题。

告诉你的服务商。一家像样的服务商是想知道的,因为被烧掉的 IP 对他们的损失比对你更大。

花钱的顺序

  1. 降速。免费。
  2. 修指纹。免费,几个小时的活。
  3. 缩短粘性会话。免费。
  4. 从数据中心换到住宅。每个活儿花得更多,因为住宅按 GB 计费。

多数人直接跳到第四步,而其中相当一部分人从头到尾问题都在第一步。

测试期间

在我们按 GB 计量的表上,没从网站拿回任何东西的请求(超时、连接重置、我们自己网关的错误)计零,并且照样在日志里标为免费。网站发回来的东西就不一样了:429、5xx、403 或验证码页都带着正文回来,这些字节和任何响应一样都是流量。所以撞墙的诊断跑很便宜,但不是免费的,最省钱的诊断是规模小的诊断。怎么及早收手,见重试不烧流量。

计量规则的原文在实话实说页。

五条都试过还是卡住?带上状态码和一份响应样本来 Discord。通常都有人撞过同一堵墙。

还有后续问题?

去 Discord 问。答案还能帮到下一个读到这个帖子的人。

加入 Discorddiscord.gg/proxypanda
$5 起步去 Discord 问