文档大纲

CloakBrowser 深度评测:最强大的开源反爬浏览器,但我们选择了借鉴而不部署

2.2 万星的 GitHub 开源项目,C++ 源码级修改 Chromium,通过全部 30 项反爬检测。本文分析它到底有多强、适合谁用,以及为什么我们的电商团队最终选择借鉴而非直接部署。

CloakBrowser 是什么?

CloakBrowser 是一个开源的「反检测浏览器」——它不是在 Chrome 外面包一层伪装,而是直接修改 Chromium 的 C++ 源代码(58 处补丁),重新编译出一个看起来和普通浏览器完全一样的定制版 Chromium。

与市面上常见的反爬方案不同,它和 Playwright API 完全兼容,只需 3 行代码就能无缝替换:

from playwright.sync_api import sync_playwright  # 原来的写法
browser = sync_playwright().start().chromium.launch()

from cloakbrowser import launch  # 现在的写法
browser = launch()

它对标的是商业产品(Multilogin、GoLogin、AdsPower),但完全免费、开源(MIT 协议)。

反爬效果有多强?

在对 CloakBrowser 与原生 Playwright 进行的检测对比中,结果令人印象深刻:

检测服务 原生 Playwright CloakBrowser 说明
reCAPTCHA v3 评分 0.1(机器人) 0.9(人类) 服务端验证,非本地伪造
Cloudflare Turnstile ❌ 失败 ✅ 自动通过 无需点验证码
FingerprintJS ❌ 被检测 ✅ 通过 demo.fingerprint.com
BrowserScan (4项检测) ❌ 未通过 ✅ 4/4 通过 browserscan.net
navigator.webdriver true false C++ 源码级消除
TLS 指纹 (JA3/JA4) 与 Chrome 不一致 完全一致 网络层不可区分
window.chrome 对象 undefined object 与真实 Chrome 完全一致

30/30 项检测全部通过——这不是 JS 注入或者配置魔改能做到的。

它是怎么做到的?

大多数反爬工具(如 playwright-stealth、undetected-chromedriver)在 JavaScript 或浏览器启动参数层面打补丁。问题在于:

  1. 反爬系统也在进化:越来越多的网站能检测出这些补丁本身
  2. Chrome 更新就失效:每个 Chrome 大版本更新都可能打破补丁
  3. JS 注入级修改无法覆盖底层指纹:Canvas、WebGL、音频指纹必须从 C++ 层修改

CloakBrowser 的思路完全不同——它从源码层面消除了「自动化痕迹」:

  • Canvas/WebGL 指纹:C++ 渲染层加入随机扰动,模拟不同 GPU
  • 硬件报告:屏幕分辨率、CPU 核心数、内存大小等报告为真实值
  • WebRTC IP:自动匹配代理出口 IP,防止真实 IP 泄漏
  • CDP 输入行为:Input.dispatchMouseEvent 产生的事件看起来像真实鼠标
  • humanize=True:一条参数启用贝塞尔曲线鼠标轨迹 + 逐字符键盘输入 + 真实滚动模式

可以说,CloakBrowser 不是在「伪装」成浏览器——它就是一个正常的浏览器,只是你没有手动操作它。

同类项目对比

项目 ⭐ 引擎 反爬层级 适用场景
CloakBrowser 21.9k Chromium C++ 源码级 58 处补丁 专业爬虫、自动化测试
Camoufox 8.8k Firefox Python 注入指纹 通用反爬,但 Firefox 在国内电商被重点检测
Patchright 3.3k Chromium CDP 补丁 + JS 注入 Playwright 用户的轻量升级
AdsPower 商业 Chromium Profile 管理 + 指纹伪装 多账号运营(付费)

Camoufox 基于 Firefox,理论上效果不错,但国内电商平台对 Firefox 的检测极为严格(淘宝页面甚至在 Firefox 上直接弹安全警告),基本不可用。

Patchright 是 Playwright 的 fork 版,在 CDP 层做补丁。优点是改动小、迁移成本低,但 JS 注入级别的伪装在淘宝每次前端更新后都可能失效。

CloakBrowser 的核心优势是 C++ 源码级修改:只要 Chromium 内核不升级新的检测手段,所有补丁都持续有效。

哪些人应该部署 CloakBrowser?

如果你的场景符合以下任一条件,强烈建议考虑:

  1. 大规模数据采集:每日需要获取几百甚至上千个页面的数据
  2. 无头模式运行:服务器端无人值守,必须靠浏览器伪装通过检测
  3. 需要过 Cloudflare/ShieldSquare 等专业反爬:JS 注入方案基本无效
  4. 使用 AI Agent 操控浏览器:如 browser-use、Crawl4AI 等框架,CloakBrowser 可即插即用
  5. 已有住宅代理 IP 但浏览器指纹暴露:CloakBrowser 的指纹随机化能补齐最后一块短板

不适合的情况:只是偶尔手动操作、已有真实登录态的浏览器、数据需求不大(< 20 页/次)。

我们为什么不部署?

我们的团队做电商运营,需要经常登录淘宝/天猫卖家后台查看数据。但我们的使用场景和 CloakBrowser 的设计场景有本质区别:

CloakBrowser 设计的场景 我们的实际场景
无头模式批量抓取 真实 Chrome 窗口 + 手操为主
无登录态、裸奔访问 已登录的真实账号 Cookie
数据中心 IP 池轮换 真实家庭/办公 IP
骗过所有反爬检测 正常浏览器本身就不会触发反爬

我们的多店铺 Chrome 架构本质上是真实用户的真实浏览器——有真实 Cookie、真实 IP、真实登录态。淘宝没有理由把它当成爬虫。

真正会触发反爬的,不是「用了哪个浏览器」,而是「用浏览器做了什么事」。我们的自动化操作量很小(偶尔翻几页、点几个按钮),远达不到触发行为分析的门槛。

我们借鉴了什么?

虽然不直接部署,但 CloakBrowser 的思路给了我们三点重要启示,并已落地:

1. 隐藏 WebDriver 标记

淘宝检测自动化浏览器的第一关就是 navigator.webdriver === true。我们在每个店铺 Chrome 的启动参数中加入了:

--disable-blink-features=AutomationControlled

这会将 navigator.webdriver 从 true 强制设为 false,消除了最明显的自动化痕迹。

2. 行为拟人化

CloakBrowser 的 humanize=True 本质是「让自动化操作看起来像人」。我们制定了操作规范:

  • 每步操作间隔 200-800ms 随机延迟(不是连续毫秒级操作)
  • 鼠标操作优先使用 page.mouse(OS 级事件),而非 CDP Input.dispatchMouseEvent(被淘宝行为分析重点监控)
  • 单次会话连续操作 不超过 10 步,中间休息 5-10 秒

3. 指纹隔离体系

CloakBrowser 每次启动随机生成指纹。我们的多店铺架构天然实现了这一点:每个店铺使用独立的 Chrome Profile 目录,Cookie、LocalStorage、浏览器指纹完全隔离,淘宝无法跨店铺关联账号。

三者协同效果:

  • --disable-blink-features=AutomationControlled → 隐藏身份
  • 独立 Profile 指纹隔离 → 防止关联
  • 拟人化操作规范 → 规避行为检测

对于我们的「真账号 + 真浏览器 + 少量自动化」场景,这套组合已经足够了。

写在最后

CloakBrowser 是一个技术上极其出色的项目——C++ 源码级修改 Chromium 的做法,远超市面上所有 JS 注入方案。如果你有大规模数据采集需求,它是目前最好的开源选择。

但技术的价值在于匹配场景。我们的核心场景是「真人在真实浏览器上操作,偶尔用自动化提效」,而非「用机器人批量抓数据」。这种情况下,借鉴 CloakBrowser 的思路、用最轻量的方式补强现有架构,比直接替换整个浏览器栈更合适。

工具永远服务业务,而不是反过来。

项目地址:https://github.com/CloakHQ/CloakBrowser

阅读量: 357