做爬虫或自动化测试的朋友应该都懂这种痛:脚本一碰到 Cloudflare、reCAPTCHA 这类高级反检测系统,立马就被拦下来。
🎯 传统方案的困境
传统方案像 playwright-stealth、undetected-chromedriver 这些,本质上是靠注入 JavaScript 或者改启动参数来绕过检测。问题来了——每次 Chrome 更个版本,这些补丁大概率得失效。而且反检测系统也不是吃素的,它们早就学会识别这些补丁本身了。
🚀 CloakBrowser 的不同
最近 GitHub 上有个叫 CloakBrowser 的项目火起来了,已经拿了 2500+ star。它的玩法完全不一样——不是搞 JavaScript 注入,也不是改配置文件,而是直接从 C++ 源码 层面修改 Chromium 浏览器。这意味着啥?反机器人系统检测它的时候,看到的就是一个普通浏览器的行为。
核心技术:CloakBrowser 维护了一个深度魔改的 Chromium 二进制文件,在编译阶段就嵌入了 49 项 C++ 级别的补丁。这些补丁覆盖了 canvas、WebGL、音频、字体、GPU、屏幕属性、WebRTC、网络时间、硬件报告、自动化信号移除以及 CDP 输入行为等等。
📊 官方测试数据
官方测试数据挺能说明问题:
| 0.1 | 0.9 | |
关键优势:Cloudflare Turnstile 非交互式挑战可以直接通过,FingerprintJS 的机器人检测页面也显示正常。
💻 安装使用
安装和使用比想象中简单。Python 用户就一行命令:
pip install cloakbrowser
代码里把原来的 Playwright 导入换掉就行:
# 原来from playwright.sync_apiimport sync_playwright# 现在from cloakbrowserimport launch browser= launch() page= browser.new_page() page.goto("https://protected-site.com")# 剩下的代码完全不变
JS/TS 用户也一样,npm 安装就行,同时支持 Playwright 和 Puppeteer 两种接口。首次启动会自动下载约 200MB 的定制 Chromium 二进制文件并缓存,不用自己配路径。
🎭 人性化行为模拟
CloakBrowser 还有个挺实用的功能——人性化行为模拟。启动时加上 humanize=True,所有鼠标移动、键盘输入和滚动操作就会自动变成人类习惯的那种模式。
鼠标移动:不是瞬间跳过去,而是贝塞尔曲线加轻微抖动
键盘输入:模拟思考停顿和偶尔打错字再纠正
滚动操作:加速、巡航、减速的微步动作
对于那些不仅检测浏览器指纹、还检测交互行为模式的网站(比如某些电商或银行),这个功能就关键了。
🔄 持久化上下文
除了单次启动,CloakBrowser 还支持持久化上下文。调用 launch_persistent_context() 可以把 cookies、localStorage 和浏览器缓存保留到本地文件夹,下次访问同样的网站就像老用户回归一样,可以绕过针对新访问者的二次验证。需要保持登录状态或构建自然浏览历史的场景里挺有用。
🐳 Docker 部署
部署方面,CloakBrowser 团队提供了完善的 Docker 支持。一条命令就能启动测试容器:
docker run --rm cloakhq/cloakbrowser cloaktest
也可以启动 CDP 服务模式,让其他程序通过远程调试端口连接同一个隐身浏览器,还支持根据不同指纹种子生成不同的浏览器身份。
⚠️ 持续更新
当然,没有任何工具能保证永远不被检测。反机器人检测本来就是一场持续的攻防战。CloakBrowser 的源码级补丁虽然比配置级补丁更难被识破,但也不是无敌的。
项目团队也在持续更新:目前已经迭代到 v0.3.26,基于 Chromium 146 内核,补丁数量从最初的 49 个增加到了 57 个,覆盖了更多检测向量。
🎯 总结
如果你正被各种反爬系统折磨,或者想给 AI Agent 项目找个可靠的浏览器内核,CloakBrowser 提供了一个免费、开源且开箱即用的选择。
GitHub 仓库:
github.com/CloakHQ/CloakBrowser
—— 感谢阅读 ——
夜雨聆风