AI 深度洞见 · 2026-05-11
做爬虫和自动化的朋友,应该都被反爬系统折磨过。
尤其是 Cloudflare Turnstile 、 reCAPTCHA v3 这种"无感验证",看似没有验证码,实际上在后台疯狂给浏览器打分。
分低了?直接 403 或者无限 Loading 。
以前我们怎么玩?
- 改 User-Agent ?没用,太浅了。
- 用 playwright-stealth 这种库注入 JS 脚本掩盖特征?效果一般,而且 Chrome 一更新就挂。
- 上指纹浏览器( AdsPower 等)?贵,且自动化集成麻烦。
最近 GitHub 上有个叫 CloakBrowser 的项目突然爆了,短时间内狂揽 17.8 万星( GitHub Trending 霸榜)。
它号称:"Not a patched config. Not a JS injection."(不是配置补丁,不是 JS 注入)。
它是直接在 Chromium C++ 源码级别打了 49 个补丁的浏览器。
到底有多猛?实测 reCAPTCHA v3 得分 0.9(真人水平), 30 个反爬检测站点 全过。
今天这篇,我们把它的底裤扒下来看看,顺便聊聊怎么用。
01 为什么传统的"伪装"不管用?
要理解 CloakBrowser 的牛逼之处,得先看它解决了什么痛点。
目前的"隐身浏览器"大多是在 应用层 做手脚。
比如 undetected-chromedriver 或者各种 stealth 插件,它们的逻辑是:
浏览器启动后,注入一段 JS 代码,把 navigator.webdriver 改成 false,或者修改 Canvas 的噪点。
反爬系统怎么看穿你的?
1. 时序检测: JS 注入是有延迟的,检测脚本可以在注入前就拿到真实特征。
2. 一致性检查:你的 JS 说你是 Windows ,但你的底层 WebGL 渲染器报的是 Linux (典型的 Docker 环境)。
3. CDP 协议泄露: Playwright/Puppeteer 的通信协议特征太明显。
CloakBrowser 的做法是:既然应用层会被查,那我就改底层。
它编译了一个定制的 Chromium ,在 C++ 源码层面修改了 Canvas 、 WebGL 、 Audio 、字体、 GPU 等指纹信息。
它在反爬系统眼里,就是一个正常的、甚至有点完美的 Chrome 浏览器。
02 核心能力拆解
2.1 真正的"源码级"隐身
它不只是把 navigator.webdriver 藏起来,而是重写了底层 API 的返回逻辑。
- Canvas/WebGL 指纹:通过随机噪点生成,每次启动都不一样。
- WebRTC 防泄露:自动修复 ICE 候选,防止暴露真实内网 IP 。
- TLS 指纹( JA3/JA4 ):修改网络层的握手特征,跟原版 Chrome 一模一样(普通爬虫的 TLS 指纹很容易被认出是 Python/Node 发出的)。
2.2 Playwright 无缝替换
这是它最方便的地方。你不需要学新的 API 。
代码改动只有 一行:
fromplaywright.sync_apiimport sync_playwright
fromcloakbrowserimport launch
browser = launch() # 自动下载隐身 Chromium 并启动
page = browser.new_page()
page.goto("https://protected-site.com")
同样的 API ,同样的逻辑,只是浏览器内核换了个"皮肤"。
2.3 Humanize :模拟真人行为
这是防止行为检测( Behavioral Detection )的大杀器。
开启 humanize=True 后:
- 鼠标移动会变成贝塞尔曲线( Bézier curves ),不再是直来直去。
- 打字会有延迟,甚至会有 模拟错字并自我纠正 的行为。
- 滚动页面会有加速、巡航、减速的微步操作。
以前是"机器在模仿人",现在是"机器在扮演一个有点笨拙的真人"。
03 实测数据:它能过哪些坎?
项目作者跑了一组非常硬核的测试,我摘录几个关键指标:
| 检测服务 | 原版 Playwright | CloakBrowser | 结论 |
|---|---|---|---|
| reCAPTCHA v3 | 0.1 (Bot) | 0.9 (Human) | 服务端验证通过,直接视为真人 |
| Cloudflare Turnstile | FAIL | PASS | 无感验证直接秒过 |
| FingerprintJS | 检测为 Bot | PASS | 成功拿到设备指纹数据 |
| BrowserScan | 6 项异常 | NORMAL (4/4) | 浏览器特征完全正常 |
| TLS (JA3) 指纹 | 不匹配 | 一致 | 网络层指纹完美伪装 |
结论:
对于绝大多数基于浏览器指纹和 Cloudflare 的防护, CloakBrowser 都能做到"降维打击"。
04 实操指南: 30 秒上手
4.1 安装
支持 Python 和 Node.js ,底层会自动下载一个约 200MB 的定制 Chromium 。
pipinstallcloakbrowser
npminstallcloakbrowserplaywright-core
4.2 基础使用
fromcloakbrowserimport launch
browser = launch(
headless=False, # 建议开启有头模式,部分激进站点检测 Headless
humanize=True, # 开启拟人化操作
proxy="http://user:pass@proxy:8080" # 搭配代理使用效果更佳
)
page = browser.new_page()
page.goto("https://example.com")
4.3 Docker 部署(推荐)
在服务器上跑爬虫, Docker 是最稳的。
dockerrun--rmcloakhq/cloakbrowsercloaktest
或者挂载你的脚本:
dockerrun--rm-v./my_script.py:/app/my_script.pycloakhq/cloakbrowserpythonmy_script.py
05 避坑指南(缺点直说)
虽然它很强,但不是万能的。用之前你得知道这些坑:
CloakBrowser 解决的是"浏览器指纹"问题,不解决 IP 信誉问题。
如果你的 IP 是那种被万人骑的数据中心 IP ( Datacenter IP ), Cloudflare 还是会拦你。
建议搭配 住宅代理( Residential Proxy ) 使用,这才是通关完全体。
在 Docker 或精简版 Linux 上,因为缺少 Emoji 和常用字体, Canvas 渲染出来的哈希值会和真实浏览器不同,导致被 Kasada/Akamai 这种激进反爬识别。
解法:安装字体包
sudo apt install fonts-noto-color-emoji ...(项目 README 里有详细列表)。目前 macOS 版本的指纹特征还不够完美,激进站点可能会拦截。作者在 README 里建议:如果在 macOS 上被拦截,尝试伪造 Windows 指纹。
这是把双刃剑。技术本身是中立的,但拿它去刷票、撞库、搞黑产就是违法的。项目协议里也写了:"Automating systems without authorization is prohibited." 咱们搞技术的,点到为止。
06 竞品对比
| 特性 | Playwright | playwright-stealth | Camoufox | CloakBrowser |
|---|---|---|---|---|
| 原理 | 原生 | JS 注入 | 修改 Firefox | 修改 Chromium C++ |
| reCAPTCHA v3 | 0.1 | 0.3-0.5 | 0.7-0.9 | 0.9 |
| Cloudflare Turnstile | 失败 | 偶尔通过 | 通过 | 通过 |
| Chrome 更新兼容性 | N/A | 经常挂 | 好 | 好 |
| 维护状态 | 官方 | 停滞 | 不稳定 | 活跃 |
一句话点评:
如果你在写严肃的自动化脚本或者爬虫,CloakBrowser 是目前开源界的版本答案。它把原本需要付费指纹浏览器(几千块一年)才能解决的问题,用开源方案干掉了。
07 最后说两句
CloakBrowser 的出现,本质上是开源社区对"过度反爬"的一次反击。
它证明了:只要愿意深入底层,指纹伪装是可以做到完美的。
建议:
- 主力开发:用原生 Playwright ,快且稳。
- 遇到 Cloudflare/强指纹站点:无缝切换到 CloakBrowser ,几行代码的事。
- 不要迷信:记得配合住宅代理和合理的请求频率,不然封的就是你的 IP 。
🤖 AI 深度洞见 — 前沿 AI ,深度拆解。每天 3 分钟,看透 AI 底层逻辑。
👇 扫码关注公众号,获取更多硬核 AI 教程与行业洞察

夜雨聆风