返回博客

DataDome:反机器人保护的工作原理及通过代理绕过的方法

DataDome是最具攻击性的反机器人系统之一,能够阻止爬虫、价格监控和自动化。我们将分析它的工作原理以及如何通过正确的代理绕过它。

📅2026年8月9日
```html

您启动了 Ozon 的价格监控或广告爬虫——几分钟后就收到了 403 或验证码。原因几乎总是一样:网站受到 DataDome 的保护。这是市场上最先进的反机器人服务之一,它不仅能够阻止简单的脚本,还能阻止通过普通数据中心代理的请求。在本文中,我们将讨论 DataDome 的工作原理,它分析了什么,以及为什么正确选择代理是稳定工作的关键。

什么是 DataDome 以及它的使用场景

DataDome 是一个商业反机器人服务,网站使用它来保护免受自动化请求的攻击。大型零售商、市场、新闻聚合器、预订服务和金融科技平台都在使用它。根据公司自己的数据,DataDome 每月处理超过 5 万亿个请求,并保护全球数千个网站。

与像 Cloudflare Bot Management 这样的初级解决方案不同,DataDome 作为用户请求与服务器之间的独立层工作。每个对受保护网站的 HTTP 请求首先经过 DataDome 的基础设施,在毫秒内做出决定:放行、显示验证码或阻止。

如果您正在监控竞争对手在市场上的价格、收集产品数据、解析广告或进行来自不同地区的广告自动测试——您很可能已经遇到过 DataDome。以下是典型的迹象:

  • 在几次请求后收到 403 Forbidden429 Too Many Requests 的响应
  • 重定向到验证码页面(通常是 Slider 或 FunCaptcha)
  • 空响应或显示“访问受限”的页面
  • 在浏览器中网站正常工作,但通过脚本或爬虫请求时出现错误
  • 即使更换 IP 也被阻止,如果其他参数不变

使用 DataDome 的知名网站包括:Reddit、Rakuten、Foot Locker、TripAdvisor、Leboncoin 等等。在俄罗斯市场,DataDome 的使用较少,但一些大型电子商务平台和聚合器仍在使用它。

DataDome 如何识别机器人:它分析了什么

理解 DataDome 的逻辑就意味着理解为什么互联网上一半的“解决方案”不起作用。该系统使用多层分析,阻止不是基于单一特征,而是基于多个信号的综合判断。我们将逐层分析。

1. IP 声誉和 ASN

DataDome 首先检查的是 IP 地址及其所属的自治系统(ASN)的声誉。如果 IP 注册在数据中心(如 Amazon AWS、DigitalOcean、OVH、Hetzner 等)——这就是一个立即的红旗。DataDome 维护自己的“脏” IP 数据库,并与其他反机器人服务交换数据。已经用于解析其他受保护网站的 IP 会更快被列入黑名单。

2. 行为模式

DataDome 不仅分析请求的事实,还分析其时间行为。请求之间的间隔过于均匀——这是机器人的迹象。仅访问特定端点(例如,仅访问产品页面)而不访问主页——这很可疑。在请求 HTML 时缺少 CSS、字体、图像的加载——也是信号。

3. HTTP 头部及其顺序

真实的浏览器以严格的顺序和集合发送头部。DataDome 会检查:User-Agent 是否与真实浏览器的指纹匹配?是否存在 sec-ch-ua 头部?Accept-Language 是否正确?如果您只是简单地插入 User-Agent 字符串,但没有重现完整的头部集合——系统会察觉到。

4. JavaScript 挑战和浏览器指纹

DataDome 在页面上嵌入 JavaScript 代码,以收集浏览器的“指纹”:屏幕分辨率、字体列表、WebGL 渲染、Canvas 指纹、插件的存在、设备类型。如果 JavaScript 不执行(如通过 requests 或 curl 的普通 HTTP 请求)——DataDome 会记录并阻止。这就是为什么没有 JS 渲染的简单爬虫无法在受保护的网站上工作。

5. Cookie 和会话令牌

DataDome 在第一次访问时设置自己的 cookie (datadome)。在后续请求中,会检查该 cookie 的存在和有效性。如果爬虫在请求之间不保存 cookie 或每次都重新开始会话——这又是一个自动化的信号。

总结:为什么 DataDome 比普通阻止更复杂

DataDome 不仅仅根据一个参数进行阻止——它同时根据数十个信号计算“风险评分”。可以绕过 IP 过滤,但在 JS 挑战中失败。可以设置正确的头部,但由于行为模式而被禁止。有效的绕过需要综合的方法。

为什么数据中心代理在 DataDome 中不起作用

这是首次接触 DataDome 的人最常问的问题:“我买了代理,连接了——但仍然被阻止。为什么?”答案在于代理的类型。

数据中心代理 是注册在商业托管和服务器农场上的 IP 地址。DataDome(和大多数现代反机器人系统一样)维护着所有已知数据中心 ASN 的最新数据库。当请求来自这样的 IP 时——它会在行为分析之前自动获得更高的可疑级别。

问题不仅在于 IP 的声誉。数据中心代理通常被成千上万的用户同时使用,这会导致来自同一地址的流量模式异常。DataDome 会察觉到这一点,并阻止整个 IP 提供商的池。

代理类型 通过 DataDome 的机会 原因
数据中心(共享) 非常低 数据中心 ASN,“脏” IP
数据中心(专用) 仍然是服务器 ASN
住宅(静态) 中等 真实的 ISP,但一个 IP = 可疑
住宅(轮换) 真实的家庭 IP,轮换
移动(4G/5G) 最高 移动运营商,NAT,高信任度

结论很简单:绕过 DataDome 需要高声誉的 IP——那些看起来像真实用户的 IP。这就是为什么 住宅代理 成为与受保护网站合作的标准。

住宅代理与移动代理:选择哪个用于 DataDome

当明确数据中心代理不合适时,接下来的问题是:住宅代理还是移动代理?每种类型都有其优势,选择取决于任务。

住宅代理

住宅代理使用真实家庭用户的 IP 地址,通过互联网服务提供商(如 Ростелеком、МТС、Comcast 等)连接。从 DataDome 的角度来看——这就是一个坐在家里用笔记本电脑的普通人。主要优势包括:

  • 庞大的 IP 池——来自不同国家和城市的数百万个地址
  • 轮换:每个请求可以来自新的 IP
  • 地理定位:可以选择特定的国家、地区或城市
  • 在反机器人系统中具有高声誉
  • 适合大规模爬虫和价格监控

住宅代理的限制是速度。它们比数据中心代理慢,这在每分钟爬取数千个页面时至关重要。但对于 DataDome 的工作来说,这是一个值得接受的妥协。

移动代理

移动代理 通过移动运营商的 SIM 卡(4G/5G)工作。这是任何反机器人系统眼中最“可信”的流量类型。原因是:移动运营商使用 NAT——一个 IP 后面可能隐藏着数百个真实用户。DataDome 知道这一点,并且无法在不冒险切断真实客户的情况下阻止移动 IP。

  • 在反机器人系统中具有最高的信任级别
  • 真实的移动运营商 ASN
  • 每次重新连接时更换 IP(或按计时器)
  • 非常适合需要最低封锁概率的任务

移动代理的缺点是价格和与住宅代理相比有限的 IP 池。它们非常适合需要每个请求的可靠性而非大规模流量的任务。

何时选择什么:

  • 价格监控,目录爬虫 → 住宅轮换代理
  • 账户操作,授权 → 移动或静态住宅代理
  • 来自不同地区的广告测试 → 带地理定位的住宅代理
  • 高负载爬虫与反机器人 → 轮换住宅代理

绕过 DataDome 的实用方法

正确的代理类型是必要的,但不是充分的条件。DataDome 分析数十个参数,而代理仅解决其中一个——IP 的声誉。以下是有效的完整方法组合。

方法 1:正确的 HTTP 头部

DataDome 检查浏览器发送的完整头部集合。模拟 Windows 上 Chrome 的最小集合如下:正确的 User-Agent,头部 sec-ch-uasec-fetch-sitesec-fetch-mode,与代理地理位置相符的正确 Accept-Language。语言和 IP 国家不匹配是常见的封锁原因。

方法 2:JavaScript 渲染

如果网站受到 DataDome 的保护——通过 curl 或 requests 的简单 HTTP 请求无法通过 JS 挑战。需要一个真正执行 JavaScript 的工具:无头浏览器(Playwright、Puppeteer)或通过反检测的完整浏览器。对于没有代码的商业任务,最佳选择是反检测浏览器:Dolphin Anty、AdsPower、GoLogin。它们启动真实的 Chromium,具有独特的指纹,并支持代理连接。

方法 3:IP 和会话轮换

DataDome 会记住“坏”会话。如果 IP 被列入黑名单——请立即更换,不要尝试从同一地址重复请求。在使用轮换住宅代理时,每个请求或会话都会获得新的 IP。重要的是:不仅要更换 IP,还要更换 cookie 会话——否则 DataDome 会将新 IP 与旧的被阻止会话关联起来。

方法 4:模拟人类行为

DataDome 的行为分析会跟踪请求模式。在请求之间添加随机延迟(2 到 8 秒),模拟导航:首先访问主页,然后是类别,最后是产品。不要仅仅直截了当地爬取目标页面。加载静态资源(CSS、图像)——或者至少模拟它们的请求。

方法 5:地理匹配

这常常被忽视。如果您正在爬取俄罗斯网站,但使用美国 IP——DataDome 会察觉到。使用来自与目标网站相同国家的代理。此外:根据代理的地理位置设置 Accept-Language 和浏览器的时区。

方法 6:管理 DataDome Cookie

Cookie datadome 是 DataDome 给予“良好”访客的令牌。如果您成功通过了检查,请保存该 cookie 并在后续请求中使用。没有必要时不要重置 cookie。在更换 IP 时,最好从获取新令牌的新会话开始,而不是转移旧的。

绕过 DataDome 的代理设置:逐步指南

我们将讨论两种场景的实际设置:通过反检测浏览器工作(用于无代码的商业任务)和爬虫设置。

场景 A:反检测浏览器(Dolphin Anty / AdsPower / GoLogin)

这种方法适合那些处理账户、测试来自不同地区的广告或手动浏览受保护网站的人。

  1. 在 Dolphin Anty 或 AdsPower 中创建新的浏览器配置文件。每个配置文件都是一个独立的“数字指纹”。
  2. 在配置文件设置中找到“代理”部分。选择类型:SOCKS5(优先)或 HTTP。
  3. 输入代理数据:主机、端口、用户名、密码。对于轮换住宅代理,使用提供商的网关地址。
  4. 检查地理位置:点击“检查代理”——浏览器将显示国家和城市。确保它们与目标网站一致。
  5. 根据代理的地理位置设置浏览器语言。如果代理来自德国——设置为 de-DE。
  6. 设置正确的 User-Agent:选择最新的 Windows 或 macOS 上的 Chrome——这是最常见的配置。
  7. 启动配置文件并访问目标网站。不要立即打开所需页面——先访问主页。

场景 B:通过 Playwright/Puppeteer 爬虫

对于从受 DataDome 保护的网站自动收集数据,需要一个支持代理和正确指纹设置的无头浏览器。

# Playwright + 住宅代理 (Python)
# 绕过 DataDome 的关键参数:

browser = playwright.chromium.launch(
    proxy={
        "server": "http://gate.proxyprovider.com:8000",
        "username": "user",
        "password": "pass"
    }
)

context = browser.new_context(
    # 真实的最新 Chrome User-Agent
    user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)...",
    # 地理位置与代理的国家一致
    locale="ru-RU",
    timezone_id="Europe/Moscow",
    # 真实的屏幕分辨率
    viewport={"width": 1920, "height": 1080}
)

# 动作之间的随机延迟
import time, random
time.sleep(random.uniform(2, 5))

额外提示:使用库来掩盖无头模式(playwright-stealth,puppeteer-extra-plugin-stealth)。DataDome 能够根据一系列技术特征识别无头 Chrome,这些插件有助于隐藏这些特征。

DataDome 代理设置检查清单:

  • ✅ 代理类型:住宅或移动(非数据中心)
  • ✅ 协议:SOCKS5(优先)或 HTTPS
  • ✅ 代理的地理位置与网站国家一致
  • ✅ Accept-Language 和时区与代理国家一致
  • ✅ JavaScript 执行(无头浏览器或反检测)
  • ✅ Cookie 在请求之间保存
  • ✅ 请求之间的延迟:2-8 秒
  • ✅ 每个新会话更换 IP

常见错误,导致 DataDome 仍然阻止

即使使用正确的代理,许多人仍然会遇到阻止。以下是最常见的原因以及如何修复它们。

错误 1:地理位置和语言不匹配

您连接了法国代理,但浏览器发送 Accept-Language: en-US。DataDome 会看到:IP 来自法国,但语言是英语——这是一种不典型的行为。解决方案:始终将语言、时区和区域与代理的地理位置同步。

错误 2:重复使用被阻止的 IP

收到 403?不要尝试再次从同一 IP 重复请求。DataDome 会记住“坏”地址,并会立即阻止它们。第一次出现阻止迹象时——立即更换 IP 并清除 cookie。

错误 3:请求频率过高

即使使用住宅代理,也不能每 100 毫秒发出请求。真实用户阅读页面的时间为 10-30 秒。DataDome 会分析导航速度。最佳模式:每个 IP 每分钟 1-3 个页面,在 10-15 个请求后——更换 IP。

错误 4:使用过时的 User-Agent

2024 年的 Chrome 89 User-Agent——这是一个红旗。DataDome 知道哪些浏览器版本是最新的。仅使用最新版本:Chrome 120+、Firefox 120+。定期更新 User-Agent。

错误 5:忽视 JS 挑战

最严重的错误是尝试通过普通的 HTTP 请求在没有 JavaScript 渲染的情况下爬取受 DataDome 保护的网站。DataDome 会在页面上嵌入 JS 代码,该代码必须执行并返回令牌。没有这个令牌,后续请求将被阻止。解决方案——仅使用无头浏览器或反检测浏览器。

错误 6:一个 IP 多个并行流

如果您通过一个 IP 启动 10 个并行爬虫流——这会立即被检测到。DataDome 会看到来自同一地址的异常请求数量。规则是:一个 IP = 一个流 = 一个会话。对于并行爬虫,需要一个带轮换的 IP 池。

错误 症状 解决方案
数据中心 IP 第一次请求即 403 更换为住宅/移动代理
没有 JS 渲染 验证码或空响应 使用无头浏览器
请求频率过高 5-10 个请求后 429 添加延迟,更换 IP
地理/语言不匹配 2-3 个请求后被阻止 同步 locale 和 IP
过时的 User-Agent 每次登录时都出现验证码 更新到最新版本的 Chrome

结论

DataDome 是一个严肃的系统,仅仅更换 IP 是不够的。它同时分析地址的声誉、用户行为、浏览器指纹、请求头和 cookie。这就是为什么数据中心代理在这里不起作用,而“仅仅更换 User-Agent”是不够的。

绕过 DataDome 的有效组合是:高质量的住宅或移动代理 + 无头浏览器或反检测(Dolphin Anty、AdsPower、GoLogin) + 正确的地理匹配头部 + 类人延迟 + cookie 管理。每个元素都很重要,忽略任何一个都会降低成功的机会。

如果您正在进行价格监控、目录爬虫或在受 DataDome 保护的网站上进行来自不同地区的广告测试,建议从 住宅代理 开始——它们在 IP 声誉、地址池的规模和成本之间提供了最佳平衡。对于那些每个请求的可靠性和最低封锁风险至关重要的任务,值得考虑 移动代理——它们的流量被 DataDome 阻止的几率极低。

```