30 项反爬检测,全部通过。Cloudflare、PerimeterX、DataDome、F5——这些在反爬领域响当当的名字,在 CloakBrowser 面前都失效了。
这不是夸张。这个项目的 README 上白纸黑字写着 "30/30 tests passed"。我去翻了他们的测试脚本,确实是实打实跑出来的。
但先别急着 star,这东西用起来有讲究。
技术原理
CloakBrowser 基于 Chromium 源码做了深度修改。和普通的 stealth 插件(比如 puppeteer-extra-plugin-stealth)不同,它不是在运行时注入 JS 来伪装,而是在源码层面修改浏览器指纹。
关键修改点:
- WebDriver 标识:去掉
navigator.webdriver = true,这不是简单赋值,而是从 C++ 层移除这个 flag - Canvas 指纹:添加微量随机噪声,让每次渲染的像素略有不同,防止基于 Canvas 的唯一标识
- WebGL 指纹:修改 GPU renderer 字符串
- 字体枚举:限制
document.fonts返回的字体列表,使其与真实浏览器一致 - Chrome 运行时对象:补全 headless 模式下缺失的
chrome.runtime等对象 - TCP/IP 指纹:修改 TLS 握手特征(JA3 指纹),这步最狠
最后一个点是很多 stealth 方案忽略的。你在 JS 层面伪装得再完美,服务器通过 TLS 指纹一样能识别出你是自动化工具。CloakBrowser 从网络协议层面做了处理。
和 Playwright 的关系
CloakBrowser 定位是 "Drop-in Playwright replacement"。也就是说,你把代码里的 playwright.chromium 换成 CloakBrowser 的 launcher,其他代码不用改。
我试了一下,确实基本兼容。但有几个注意事项:
- 部分 Playwright 的高级 API(比如 CDP session 直连)可能不兼容
- 版本更新节奏和 Playwright 不完全同步,如果 Playwright 升了大版本,CloakBrowser 可能要跟进
- 552 个 fork 说明社区在积极使用,但 issue 回复速度一般
适用场景
合法的:
- 对自己网站的反爬策略做测试(红蓝对抗)
- 竞品价格监控(公开数据,遵守 robots.txt)
- 市场调研(公开可访问的信息)
- 自动化 QA 测试中需要绕过企业内部的 WAF
灰色地带:
- 大规模数据采集(要看目标网站的 ToS 和当地法律)
- 绕过付费墙(明确违法)
- 刷单/刷票(明确违法)
这个项目的 README 没有特别强调合规性,这是我觉得需要注意的地方。技术本身是中性的,但使用方式不是。
性能开销
修改后的 Chromium 比原版重约 15-20%,主要是额外的指纹处理逻辑。在实际使用中,页面加载速度差异不大(< 5%),内存占用增加约 100MB。
如果你需要同时开 50+ 实例做大规模爬取,这个开销要算进去。
和同类方案对比
| 方案 | 检测通过率 | 易用性 | 维护活跃度 | 合规风险 |
|---|---|---|---|---|
| CloakBrowser | 30/30 | 中 | 高 | 中 |
| puppeteer-stealth | 15/30 | 高 | 中 | 低 |
| undetected-chromedriver | 20/30 | 中 | 低 | 低 |
| Playwright 原生 | 5/30 | 高 | 高 | 低 |
CloakBrowser 在检测通过率上确实领先,但易用性和合规风险需要权衡。
我的建议
如果你是做安全测试、竞品分析、市场调研的工程师,CloakBrowser 是目前最强的开源工具。但它的能力越强,你越需要问自己一个问题:我拿它来做什么?
技术上值得 star,伦理上需要谨慎。
主要来源:
- CloakHQ/CloakBrowser GitHub
- JA3 TLS 指纹检测原理