做网页自动化的人,应该都碰过一个很烦的场景。
脚本刚跑起来,页面还没点两下,验证就先弹出来了。换 UA、关 webdriver、挂 stealth 插件,能过一阵,但下次 Chrome 一更新,又开始莫名其妙翻车。
CloakBrowser 这个项目,切的不是这层。
我点进 README 看了下,它的思路有点硬:不是在页面里注入 JS,也不是改几个启动参数,而是把 Chromium 的指纹特征放到 C++ 源码层面处理,再重新编译浏览器。项目里提到的覆盖面包括 canvas、WebGL、audio、fonts、GPU、screen、WebRTC、硬件报告、CDP 输入信号这些常见检测点。
这就和常见 stealth 插件不是一个路数了。

以前很多方案像是在浏览器外面贴补丁。页面问什么,你临时拦一下、改一下、糊一下。
CloakBrowser 更像是直接换了一个“长得更正常”的 Chromium。检测脚本看到的,不是被临时改过的响应,而是编译进浏览器里的行为。
它还有一个挺抓人的参数:humanize=True。
打开后,鼠标移动、键盘输入、滚动轨迹会按更接近真人的方式发出去。README 里写到的是贝塞尔曲线鼠标、逐字符输入、自然滚动模式。
这点对跑自动化的人很有体感。
很多页面现在并不是只看你有没有 navigator.webdriver,还会看你点得像不像人。鼠标从 A 到 B 是不是瞬移,输入框是不是一毫秒打完一整段,滚动是不是机械得离谱。
CloakBrowser 把这部分也包进去了。
接入方式倒没有做得很重。

它主打的是替换 Playwright / Puppeteer 的启动入口,Python 和 JavaScript 都能用,原来的页面操作逻辑基本不用重写。官方文档里也强调,迁移时主要是换 import,后面的 API 还是熟悉的那套。
对老项目来说,这个设计挺关键。
因为真正麻烦的不是写一个 demo,而是你手里已经有一堆爬取、登录、截图、表单提交、RPA 流程。要是为了防检测重写一遍框架,基本没人愿意干。
它还给了 Docker 和 profile manager。
后者可以创建不同浏览器配置,管理 proxy、timezone、fingerprint,并支持持久化 cookie 和 session。对需要长期挂在服务器上跑的任务,这比每次从零启动要省不少事。
不过也得说一句,这类工具最好用在合规的自动化测试、内部系统巡检、公开数据抓取这些场景里。
别拿它去硬怼别人明确禁止的服务条款。技术上能跑,不代表业务上没坑。
我的感觉是,CloakBrowser 火起来不奇怪。
它抓住的是一个很具体的痛点:传统 stealth 越来越像补洞,而反爬检测已经开始看浏览器更底层、更连续的信号。
这次它干脆把洞口往下挪了一层。
GitHub 地址:CloakHQ/CloakBrowser
夜雨聆风