乐于分享
好东西不私藏

CloakBrowser:这次不是隐藏插件,而是直接改 Chromium

CloakBrowser:这次不是隐藏插件,而是直接改 Chromium

做网页自动化的人,应该都碰过一个很烦的场景。

脚本刚跑起来,页面还没点两下,验证就先弹出来了。换 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