CloakBrowser:把 Chromium 拿来重编的浏览器自动化项目
我第一次停住,是因为它没有把自己包装成一个“更聪明的爬虫框架”。
CloakBrowser 的说法很直接:这是一个给 Playwright、Puppeteer 用的 Chromium。不是在页面加载后塞一段 JS,也不是靠启动参数把几个字段藏起来,而是把浏览器二进制本身换掉。官方介绍里写到,它围绕自定义 Chromium 做了一层 Python 和 JavaScript wrapper,并在源码层面处理 canvas、WebGL、audio、fonts、GPU、screen properties、WebRTC、hardware reporting 等信号。
这类项目有个尴尬点。
你只要做过稍微复杂一点的网页自动化,就会知道,问题往往不在“脚本会不会点按钮”。
脚本当然会点。
真正麻烦的是,浏览器还没开始干活,环境就已经露馅了。
画布渲染、音频指纹、字体列表、GPU 信息、WebRTC、窗口尺寸、自动化标记……这些东西单独看都不起眼,拼在一起就变成了一张很难解释的脸。
CloakBrowser 有意思的地方,正在这里。
它没有再造一套自动化 API,而是尽量贴着已有工作流走。官方说明里提到,第一次启动会自动下载对应平台的 Chromium binary,后面还是用标准的 Playwright 或 Puppeteer API。也就是说,你原来怎么写 browser、page、click、evaluate,大体还是那套。
这个取舍挺现实。
因为多数人卡住,不是因为不想学新框架,而是不想把一堆已经跑通的自动化脚本重写一遍。
我更在意的是它对“浏览器像不像真人在用”的处理。
项目页面里提到,它不只改静态指纹,也覆盖了一些自动化行为信号,比如 CDP input behavior mimicking。最新 release 页面里,维护者还写到预构建 Chromium 已经带了 57 个 source-level fingerprint patches。
听起来有点硬。
但也要把话说清楚:这不是给人拿去乱闯网站规则的万能钥匙。
更适合放在授权采集、自有站点测试、自动化验收、AI Agent 浏览器环境这类场景里看。尤其是你需要长期跑浏览器任务,又不希望环境本身和真实用户差太远时,它比“临时加几个 stealth 插件”更接近底层方案。
还有一个配套项目也值得看一眼。
CloakBrowser-Manager 做成了 Web 端 profile 管理器,官方定位是自托管的浏览器画像管理工具,可以创建、管理、启动带独立指纹的浏览器 profile,并支持 Docker 部署。
这就把使用场景从“某个脚本调用一个浏览器”往前推了一步。
多个 profile。
持久 cookies 和 session。
代理、时区、指纹配置分开管。
这些东西对临时 demo 没什么用,但对长期跑的自动化任务,会少很多琐碎配置。
我不会把 CloakBrowser 说成一个“爬虫神器”。
它更像是把过去散在插件、启动参数、补丁和环境变量里的东西,收回到一个定制 Chromium 里。代价也很明显:你信任的不再只是 npm 包或 pip 包,还包括它下载下来的浏览器 binary、维护节奏,以及每次 Chromium 升级后的补丁跟进。
所以这个项目最适合的人,不是刚学爬虫的人。
是已经有 Playwright / Puppeteer 脚本,知道自己卡在哪里,也清楚哪些站点能碰、哪些不能碰的人。
GitHub 地址:CloakHQ/CloakBrowser