CloakBrowser 是什么?给 Playwright 和 Puppeteer 换一个更像真实用户的浏览器

介绍 CloakHQ/CloakBrowser:一个基于自定义 Chromium 的浏览器自动化项目,提供 Python、JavaScript、Docker 和 Profile Manager,用于需要真实浏览器行为的自动化测试与 Agent 场景。

CloakHQ/CloakBrowser 是一个面向浏览器自动化的开源项目。它不是普通的 Playwright 配置,也不是单纯注入一段 JavaScript,而是围绕自定义 Chromium 二进制构建,让浏览器指纹、WebGL、Canvas、音频、字体、GPU、屏幕信息、WebRTC、网络时序等信号更接近真实浏览器。

项目地址:https://github.com/CloakHQ/CloakBrowser

截至写作时,GitHub API 显示这个仓库已有约 1.5 万 star,主要语言是 Python,许可证为 MIT。README 对它的定位很直接:一个可替代 Playwright / Puppeteer 启动器的 Stealth Chromium。

它解决什么问题

很多自动化脚本在普通 Headless Chromium 下会暴露明显自动化特征,例如:

  • navigator.webdriver
  • Headless UA 泄漏。
  • 插件、字体、屏幕、GPU 等指纹不自然。
  • CDP 行为和真实用户输入不一致。
  • 默认临时 profile 缺少正常浏览痕迹。

CloakBrowser 的思路是把一部分指纹修改放到 Chromium 源码层,而不是只在运行时做配置或 JS patch。这样对 Playwright 用户来说,使用方式仍然接近原来的浏览器自动化 API,但底层浏览器换成了项目提供的自定义构建。

这类工具适合做合规的自动化测试、站点兼容性验证、反爬系统自测、Agent 浏览器环境实验。不要把它用于未授权访问、账号滥用、绕过平台风控或违反服务条款的场景。

基本使用方式

Python 安装:

1
pip install cloakbrowser

JavaScript / Node.js 安装:

1
npm install cloakbrowser playwright-core

README 给出的 Python 示例很接近 Playwright:

1
2
3
4
5
6
from cloakbrowser import launch

browser = launch()
page = browser.new_page()
page.goto("https://protected-site.com")
browser.close()

JavaScript 示例:

1
2
3
4
5
6
import { launch } from 'cloakbrowser';

const browser = await launch();
const page = await browser.newPage();
await page.goto('https://protected-site.com');
await browser.close();

第一次运行时,项目会自动下载对应平台的 Chromium 二进制文件,README 提到体积约 200MB,并会缓存到本地。

Browser Profile Manager

CloakBrowser 还提供一个 Browser Profile Manager,可以自托管浏览器 profile,管理不同指纹、代理和持久会话。README 中的 Docker 启动方式如下:

1
docker run -p 8080:8080 -v cloakprofiles:/data cloakhq/cloakbrowser-manager

启动后打开:

1
http://localhost:8080

这个方向更像开源的浏览器 profile 管理工具,适合需要多 profile、持久 cookie、隔离会话的自动化测试或内部 QA 场景。

和普通 Playwright 有什么差别

普通 Playwright 的优点是稳定、官方维护、API 成熟。CloakBrowser 的差别在于它使用自定义 Chromium,并提供一组源代码级别的指纹 patch。

README 里列出的能力包括:

  • Canvas、WebGL、Audio、Fonts、GPU、Screen 等指纹处理。
  • WebRTC IP spoofing。
  • 代理相关信号处理。
  • humanize=True 模拟更自然的鼠标、键盘和滚动行为。
  • Python 与 JavaScript 双端 API。
  • Docker 镜像与 CDP server 模式。
  • 持久 profile。

也就是说,它更适合对“浏览器环境真实性”有要求的自动化任务,而不是替代所有 Playwright 使用场景。

使用时要注意什么

第一,浏览器自动化和反检测相关工具有很强的合规边界。它可以用于测试自己的站点、验证自动化环境、做内部 QA,也可以用于研究浏览器指纹;但不应被用于未经授权的抓取、账号批量注册、绕过访问控制、攻击或滥用服务。

第二,README 中也说明,CloakBrowser 不内置代理轮换,也不是验证码解决服务。它提供浏览器层能力,网络信誉、账号信誉、行为策略和目标站点规则仍然会影响结果。

第三,自定义 Chromium 二进制意味着供应链安全要额外关注。正式使用前建议检查版本、二进制来源、签名说明、许可证和更新机制。

适合谁

适合三类用户:

  • 已经在用 Playwright / Puppeteer,但需要更接近真实浏览器环境的开发者。
  • 做浏览器自动化测试、兼容性测试或反爬策略验证的团队。
  • 需要给 AI Agent 提供浏览器执行环境的开发者。

如果只是普通网页测试,原生 Playwright 已经够用。如果目标是研究浏览器指纹、profile 隔离和真实浏览器行为,CloakBrowser 值得关注。

小结

CloakBrowser 的关键点不是“多写一个自动化封装”,而是把浏览器自动化的一部分伪装能力下沉到 Chromium 构建层。它保留了 Playwright / Puppeteer 的使用习惯,同时提供自定义浏览器、profile 管理、Docker 和 CDP server。

这类工具能力强,也更需要谨慎使用。判断是否值得接入,重点看你的场景是否真的需要自定义 Chromium,而不是只因为普通 Headless 浏览器被某些检测服务标记。

参考项目:https://github.com/CloakHQ/CloakBrowser

记录并分享
使用 Hugo 构建
主题 StackJimmy 设计