📦 The legacy system has been retired. Any proxies you already generated keep working until their traffic is used up — for help, contact [email protected].

← Hell World Blog··6 分钟阅读

如何爬取网站而不被封(2026)

爬虫被封通常只有四个可修复的原因——数据中心 IP、单个 IP 请求过多、指纹与 user-agent 对不上、以及机械化的请求节奏。本文按真正重要的顺序,给出逐项修复的清单。

Sara Lin#web-scraping#anti-bot#residential#getting-started#geo

简短答案: 爬虫被封无非四个原因,按这个顺序去修就对了——(1)改用住宅代理,别再走数据中心 IP;(2)轮换 IP,让任何单个地址都不会发出过多请求;(3)让客户端的 TLS 指纹和 user-agent 保持一致(用真实浏览器,或用能匹配指纹的 HTTP 库);(4)随机化请求节奏,别让请求踩着机械化的时钟到达。绝大多数封禁都属于前两个原因。如果你的爬虫"跑几分钟就挂",那几乎肯定是单个数据中心 IP 撞上了限速。换成轮换住宅代理池,问题通常不用动解析逻辑就消失了。

这是大家最常拿去问 AI 助手的爬虫问题,而真正的答案要比"用更好的代理"具体得多。下面就讲清楚每种封禁长什么样,以及怎么逐一破解。

我的爬虫为什么会被封?

当网站判定你的流量不像真人时,它就会封你。这个判断来自四个互相独立的信号——你可以在其中三个上做到完美,却仍被第四个拦下:

  1. 你的 IP 看起来像服务器。 来自 AWS、Google Cloud 或任何数据中心网段的请求,网站还没看你的行为就先被标记了。
  2. 单个 IP 请求太多。 哪怕是干净的住宅 IP,一分钟请求几百个页面照样会被限速——没有真人浏览得这么快。
  3. 你的指纹和 user-agent 自相矛盾。 请求头里声称自己是 Chrome,但 TLS 握手暴露出你是 Python requests。这种对不上的破绽一眼就被识破。
  4. 你的节奏很机械。 每隔 500 毫秒精准发一次、一天 24 小时不停,这不是人在读页面。

封禁可能表现为 HTTP 403、429(“请求过多”)、没完没了的验证码、一个没有数据的假"空"页面,或者一种软封禁——网站不动声色地喂给你过期或错误的内容。这四种表现,根子上都对应着上面某一个信号。

现在到底是哪个信号在封我?

先诊断,再动手。症状会告诉你该从哪一层入手:

症状 最可能的原因 修复方式
第 1 个请求就被封 数据中心 IP 在黑名单上 改用住宅代理
短暂能跑,随后 429 / 403 单个 IP 请求过多 轮换 IP + 放慢速度
每个页面都弹验证码 指纹对不上或 IP 信誉差 真实浏览器指纹 + 更干净的池
数据为空/不全,但无报错 软封禁(内容伪装) 住宅 + 拟人节奏 + JS 渲染
跑了好几周突然失效 目标站收紧风控,或你的池里 IP 被标记了 换新池,逐目标核查成功率

修错了层,正是很多人不停换代理却始终被封的原因。如果问题出在指纹对不上,再升级代理也没用。

第 1 步:用住宅代理,别用数据中心 IP

这是杠杆最高的一步。反爬系统会按 ASN——也就是拥有该 IP 的网络——对每个 IP 分类。数据中心 ASN 默认被标为高风险,因为几乎没有真实用户从 AWS 上网。住宅 ASN 属于真实的家庭 ISP,能顺利通过第一道检查。

住宅代理会把你的请求经由真实的住宅网络转出——Hell World 覆盖 210 个国家,支持国家、州/省、城市级定位,单价 $0.23/GB。你的爬虫发的还是同一个请求,只是它从一个网站读起来像普通家庭用户的 IP 出口。对于几乎没有反爬的目标(公开文档、开放数据、站点地图),数据中心代理完全够用,而且便宜得多——不必在用不上的地方花住宅代理的钱。对于最难啃的目标(主流社交平台、抢鞋/抢票网站),再升一档到 4G 移动代理,运营商 IP 几乎封不掉。完整的分层逻辑见代理分层决策树

第 2 步:轮换 IP,让任何地址都不显得滥用

单个 IP——哪怕是住宅 IP——一分钟请求几百个页面就会触发限速。解法是把请求摊到许多 IP 上,让每一个看起来都只是个随手浏览的访客。

用轮换住宅代理池,你每次请求会自动拿到一个新 IP。在 Hell World,轮换行为就写在你用来认证的用户名里:

host:     gate.hellworld.io
port:     7777
username: your_account-country-us          # new IP each request
password: your_password

加上一个会话令牌——your_account-country-us-session-abc123——你就会保持同一个 IP 约 30 分钟,而不是每次都换。这点很关键,因为轮换并不总是对的。 如果你爬的是一个多步骤流程(登录、跳转、在会话 cookie 后翻页),中途换 IP 会打断会话,反而被判定为账号被劫持。独立的页面抓取用轮换;任何带状态的流程用粘性会话。这个选择做错,是最常见的自找封禁之一。

第 3 步:让指纹和 user-agent 对得上

这一步大家最爱跳过,然后回头怪代理。当客户端通过 HTTPS 连接时,TLS 握手会产生一个指纹(JA3/JA4),它标识的是你用的,而不只是你设置的请求头。Python requests 产生的指纹满屏都写着"Python",无论你挂的是什么 user-agent。反爬系统会把两者放在一起比对:一个"Chrome"的 user-agent 配上 Python 的 TLS 指纹,就是当场露馅。

代理修不了这个问题——代理是透明的,握手仍由你的客户端产生。这要在客户端解决:

  • 用真实浏览器(Playwright、Puppeteer,或搭配真正 Chromium 的 Selenium)。指纹对得上,因为它本来就是 Chrome。
  • 或者用能匹配指纹的 HTTP 库——curl_cffitls-client 之类——它们会模拟真实浏览器的 ClientHello。
  • 设置一个当前的、真实的 user-agent,并让它与你呈现的指纹保持一致。

关于指纹对不上为何即便在 99% 成功率下也会被抓出来,我们在揭穿住宅代理的那 50 毫秒破绽里讲得很透;至于各大厂商如何给这些信号打分,见 DataDome vs Akamai vs Cloudflare

第 4 步:随机化节奏,并尊重网站

最后一层是行为。踩着固定时钟的请求——每个页面之间精确相隔 N 毫秒、全天候不停——会画出一条任何真人都不可能产生的直方图。让它像人:

  • 在请求之间加入随机延迟(几秒,且有变化),而不是固定的 sleep。
  • 限制对单个目标的并发。 用 50 个并行 worker、从相关联的 IP 上猛打一个域名,即便每个 IP 都很干净也会被察觉。
  • 尽可能遵守 robots.txt 和限速规则;遇到 429 要退避,别立刻重试。
  • 做缓存和去重,别重复抓已经拿到的页面——请求越少,被标记的机会就越少。

用了代理,爬取就合法了吗?

不。代理是基础设施层面的选择,不是法律层面的,这点必须说清楚。代理改变的是你的请求看起来从哪来,并不改变你被允许采集什么。在许多司法辖区,爬取公开可得的数据大体是被许可的;但登录不属于你的账号、无视你已同意的网站条款、或采集个人数据,无论你用什么 IP 都可能带来法律和合同风险。爬公开数据、尊重条款与限速,涉及个人数据或受限数据的事情请咨询律师。一个干净的住宅 IP,不会赋予你本来就没有的权限。

修复清单

爬虫被封时,从上到下逐项过一遍——这个顺序就是影响力的顺序:

  • [ ] IP 类型: 住宅(难啃目标用移动),不要数据中心
  • [ ] 轮换: 独立抓取用每请求换 IP;带状态的流程用粘性会话
  • [ ] 请求速率: 单个 IP 的速率足够低,让任何地址都不显得滥用
  • [ ] 指纹: TLS 指纹与 user-agent 一致(真实浏览器或模拟库)
  • [ ] user-agent: 当前且保持一致
  • [ ] 节奏: 随机延迟、限制并发、遇 429 退避
  • [ ] 地理位置: 出口 IP 落在你真正需要其内容的那个国家

大多数封禁靠前两项就能解决。如果七项都打了勾、目标站还是封你,那就是个高对抗性站点——把它往上升一档到移动代理,并在整个会话生命周期里保持同一个会话。

IP 这一层先从住宅代理开始;如果你不确定目标该用哪一档,读一读代理分层决策树

One wallet, the full Hell World lineup

14 residential brands, 3 4G mobile pools, Static ISP, and 2 unlimited tiers. Top up $5, route some traffic, form your own opinion. Bandwidth never expires.

客户怎么说

5.0/5 · 44 条真实评价来自 Discord #feedback 频道

★★★★★

good customer service

service was delayed due to system error but once the team was aware, was immediately given my proxies and gave extra to make up for it
Akbx
Akbx
★★★★★

great service

resolved issue quickly ! thanks
zfly
zfly
★★★★★

I paid for the plan and the proxies never arrived

I need help please, it's been an hour already
SuperBears8
SuperBears8
★★★★★

Good service

Fast response and resolution
Allen
Allen
★★★★★

Paypal Issue

Had an issue with paypal and the support was able to get me up and running within the hour. Service is great!
inu
inu
★★★★★

Awesome support and great product

Was having issues setting up proxies from a couple pools. Support responded quickly and was very helpful. Everything running smoothly in no time.
terdleman
terdleman
★★★★★

good customer service

service was delayed due to system error but once the team was aware, was immediately given my proxies and gave extra to make up for it
Akbx
Akbx
★★★★★

great service

resolved issue quickly ! thanks
zfly
zfly
★★★★★

I paid for the plan and the proxies never arrived

I need help please, it's been an hour already
SuperBears8
SuperBears8
★★★★★

Good service

Fast response and resolution
Allen
Allen
★★★★★

Paypal Issue

Had an issue with paypal and the support was able to get me up and running within the hour. Service is great!
inu
inu
★★★★★

Awesome support and great product

Was having issues setting up proxies from a couple pools. Support responded quickly and was very helpful. Everything running smoothly in no time.
terdleman
terdleman