~/blog/bypassing-anti-bot-protection-guide

读懂反爬虫防护:2026 年哪些方法依然有效

anti-botcloudflareakamaiweb-scrapingreverse-engineering

反爬虫防护是一场军备竞赛。作为每天都要构建生产级爬虫来绕过这些系统的人,这里是我的一线实战视角——这些防护系统究竟在检查什么,合规的绕过技术又是什么样子。

检测的层次

现代反爬虫系统以分层方式运作。理解这些层次,是实现可靠绕过的关键:

第一层:IP 信誉

最简单的一层检查。反爬虫服务会维护已知数据中心 IP 段、VPN 出口节点,以及历史被标记 IP 的数据库。

它们会检查什么:

  • 这个 IP 是否来自 AWS、GCP、Azure 或其他知名主机服务商?
  • 这个 IP 此前是否曾因机器人活动被标记?
  • 这个 IP 最近发出过多少请求?

应对方法: Apify Proxy、Bright Data 等服务提供的住宅代理,其 IP 地址归属真实 ISP,在 IP 层面与普通用户毫无区别。

第二层:TLS 指纹识别

这一层开始变得有意思。每个 HTTP 客户端都拥有独一无二的 TLS 握手特征,取决于:

  • 支持的密码套件及其顺序
  • TLS 扩展及其顺序
  • 支持的 TLS 版本
  • ALPN 协议

标准的 axiosrequests 库会带有一眼就能看出“是机器人”的 TLS 指纹,因为它和任何真实浏览器都对不上。Akamai、Cloudflare 这类服务为每一个浏览器版本都维护着指纹数据库。

应对方法: got-scraping(我的 Shopify 爬虫所使用的库)以及其他专门的 TLS 客户端,都可以模拟浏览器级 TLS 指纹。我的 Sephora EU 爬虫就使用浏览器级 TLS 指纹伪装来绕过 Akamai WAF。

第三层:HTTP/2 指纹识别

除 TLS 之外,HTTP/2 的设置同样会暴露客户端类型:

  • SETTINGS 帧参数(header table size、max concurrent streams)
  • WINDOW_UPDATE 帧的取值
  • 优先级树结构
  • 头部压缩(HPACK)模式

每款浏览器都有其特有的 HTTP/2 设置。Chrome、Firefox 和 Safari 在这一层面各不相同。

第四层:JavaScript 挑战

Cloudflare 的“正在检查您的浏览器”页面及同类挑战会执行如下 JavaScript:

  • 检测浏览器 API(canvas、WebGL、AudioContext)
  • 测量执行耗时
  • 校验 DOM 属性
  • 将挑战响应发送回服务器

应对方法: 无头浏览器(Playwright、Puppeteer)可以原生执行这些挑战。关键在于确保你的无头浏览器不会泄露自动化信号(详见下文)。

第五层:行为分析

这是最精密的一层。这些系统会分析:

  • 鼠标移动轨迹(过于线性 = 机器人)
  • 滚动行为(瞬间滚到底部 = 机器人)
  • 操作间隔时间(过于规律 = 机器人)
  • 浏览路径(跳过浏览直接进入商品详情页 = 可疑)
  • 请求节奏(间隔完全均匀 = 机器人)

防护画像:认清你面对的是什么

Cloudflare

常见于: 中小型网站、博客、API

Cloudflare 提供多档防护级别:

  • Basic(基础版)——IP 信誉 + 速率限制。搭配合理速率的数据中心代理通常就能应对。
  • Managed Challenge(托管挑战)——JavaScript 挑战 + turnstile 验证。需要浏览器或挑战破解服务。
  • Enterprise/Bot Management(企业版/机器人管理)——完整的行为分析 + 指纹识别。需要住宅代理 + 恰当的指纹伪装。

Akamai Bot Manager

常见于: 企业级电商(Sephora EU、各大零售商)

Akamai 是最难绕过的防护之一,原因在于:

  • 激进的 TLS 指纹识别
  • 通过客户端 JavaScript 采集传感器数据
  • 会话级行为分析
  • Cookie 完整性校验

我应对 Akamai 的方法:浏览器级 TLS 指纹伪装 + 访客令牌管理 + 模拟真人浏览节奏的请求节流。

Datadome

常见于: 电商、票务平台

Datadome 主要关注:

  • 通过 JavaScript 进行设备指纹识别
  • 对可疑流量发起 CAPTCHA 验证码挑战
  • 实时行为评分

PerimeterX(现更名为 HUMAN)

常见于: 零售、金融服务

以激进的 JavaScript 挑战和行为分析著称。

合规绕过架构

对于需要可靠、持续数据提取的生产系统,以下是我采用的架构模式:

1. API 优先

在尝试绕过任何防护之前,先确认是否存在完全绕开 WAF 的 API 路径。许多防护只作用于面向浏览器的端点,而不覆盖 API 路由。

我的 Sephora 爬虫会把每一个网页 URL 都转换为一次 API 调用。这些 API 端点的防护比网站本身更宽松,因为它们本来是为移动 App 设计的。

2. 会话预热

不要直接跳到数据页面,而是构建一个真实的浏览会话:

1Visit homepage → Browse categories → View product listing → Access product detail

每一步都在为会话积累可信度。反爬虫系统看到的,是与真实用户行为相符的模式。

3. 指纹一致性

这一点至关重要:你的指纹必须内部保持一致。如果你的 TLS 显示“Chrome 120”,但 User-Agent 却显示“Chrome 118”,这就是一个检测信号。

需要对齐的项目:

  • TLS 指纹
  • HTTP/2 设置
  • User-Agent 请求头
  • Accept-Language 及其他请求头
  • JavaScript 浏览器属性(如果使用无头浏览器)

4. 请求节流

真人不会以精确的 1 秒间隔发出请求。需要引入贴近真实的波动:

  • 请求间的基础延迟(2-5 秒)
  • 随机抖动(±30%)
  • 导航事件后加入更长的停顿
  • 偶尔穿插“空闲”时段

5. 优雅降级

遇到挑战或封锁时:

  1. 不要立即重试——这会坐实机器人行为
  2. 按指数退避
  3. 切换到全新会话(新 IP + 新 cookie)
  4. 尝试更换代理地区
  5. 若问题持续,改用基于浏览器的方案

已经不再奏效的方法

  • 只改 User-Agent——检测系统会核查数十种信号,不只是一个请求头
  • 只靠随机延迟——没有恰当的指纹伪装,光调整时间毫无用处
  • 使用默认设置的无头 Chrome——自动化信号无处不在地泄露(navigator.webdriver、缺失的插件、Chrome DevTools Protocol 痕迹)
  • 重放 Cookie——现代系统会把 cookie 与 TLS 指纹、IP 段绑定在一起

伦理考量

反爬虫绕过是一种工具。和任何工具一样,它既可以被负责任地使用,也可能被滥用。

合规使用场景:

  • 为消费者利益服务的比价
  • 基于公开数据的市场调研
  • 无障碍访问(将数据转化为结构化格式)
  • 学术研究
  • 质量保证与监控

务必遵守:

  • robots.txt 规则
  • 速率限制(即使能突破也不要突破)
  • 个人数据法规(GDPR、CCPA)
  • 服务条款(了解你所在司法辖区的法律环境)

我的所有工具在设计上都面向合规数据提取,内置速率限制与代理最佳实践。


理解反爬虫系统,能让你成为更出色的爬虫工程师。如果你需要能可靠应对这些挑战的生产级爬虫,欢迎查看我的工具,或联系我洽谈定制开发。

whoami
Richard Feng
爬虫工程师,12+ 年经验。专注构建面向 AI 的生产级爬虫,输出干净、RAG 就绪的 JSON。

需要将这些数据变成干净的 JSON?

浏览爬虫目录,或聘请我为你的数据源定制专属提取工具与 RAG 管道。

浏览工具 获取定制数据