30 个反检测站点,30 个全部通过。包括 Cloudflare Turnstile、FingerprintJS、BrowserScan 这些业内公认比较难缠的。
这不是某个配置文件的 tweak,也不是运行时注入几行 JS 来伪造 navigator 对象。CloakBrowser 做的是直接在 Chromium 的 C++ 源码上打了 49 个补丁,从 canvas、WebGL、audio、fonts 到 GPU、screen、WebRTC、network timing,甚至连 CDP(Chrome DevTools Protocol)的输入行为都改了。
结果是一个有完整指纹伪装的 Chromium 二进制文件。对反检测系统来说,它就是一个普通浏览器——因为它本来就是一个普通浏览器,只是指纹被重新捏过。
安装有多简单
pip install cloakbrowser
# 或
npm install cloakbrowser playwright-core
装完之后,把你的 Playwright 代码里的 import 换一行:
- from playwright.sync_api import sync_playwright
- pw = sync_playwright().start()
- browser = pw.chromium.launch()
+ from cloakbrowser import launch
+ browser = launch()
完事。剩下的代码一字不改。
首次运行会自动下载 ~200MB 的隐身 Chromium 二进制文件,之后就本地缓存了。也有 Docker 镜像,一行就能试:
docker run --rm cloakhq/cloakbrowser cloaktest
关键特性
49 处源码级 C++ 补丁。 这是 CloakBrowser 和市面上大多数「反检测浏览器」最本质的区别。很多方案的做法是在启动时通过 CDP 注入 JS 来覆盖 navigator.webdriver、navigator.plugins 这些属性,或者用配置参数关闭一些特征。但这些方法在高级反检测系统面前很容易被识破——因为它们不改变浏览器本身的二进制特征。
CloakBrowser 从源码层面修改,反检测系统拿到的是一个「原生就长这样」的浏览器。
humanize=True 一行开挂。 人类级别的鼠标移动曲线、键盘输入时序、滚动模式。 behavioral detection(行为检测)直接过。reCAPTCHA v3 分数 0.9,server-verified 的人类水平。
自动更新二进制。 后台检查更新,始终用最新的隐身构建。这点对爬取来说很关键——反检测系统会不断更新检测规则,浏览器指纹也得跟着变。
浏览器 Profile 管理器。 内置了多 Profile 管理,可以替代 Multilogin、GoLogin、AdsPower 这些收费服务。每个 Profile 有独立指纹、代理和持久化 session,通过 noVNC 在浏览器里直接操作。
数据
- 13,027 星,一周涨 8,618
- 1,007 fork
- PyPI 和 npm 双发布,有 Docker 镜像
- Python 和 JavaScript 两套 SDK
- Free and open source,没有订阅制,没有使用量限制
适用场景
做数据采集的、做自动化测试的、做价格监控的,只要遇到过「你的脚本被识别为 bot」这个问题,这个工具就是对症下药的。
但有一个现实问题要说清楚:这不是免死金牌。 反检测和反反检测是一场永无止境的军备竞赛。今天 30/30 全过,不代表下周还能。CloakHQ 团队在持续更新二进制,但如果你依赖它做生产环境的数据采集,得做好随时跟进更新的准备。
另一个需要考虑的是合法性。绕过反检测系统在某些司法管辖区可能涉及 CFAA 等法律风险,取决于你的使用目的和方式。这不是 CloakBrowser 的问题,而是整个爬虫行业要面对的现实。
和同类方案比
- vs undetected-chromedriver:那个是运行时补丁,CloakBrowser 是源码级,隐蔽性高一个量级
- vs playwright-stealth:类似,也是 JS 注入层面,容易被识别
- vs Multilogin / GoLogin:那些是收费 SaaS,CloakBrowser 免费开源,且底层技术更透明
我的看法
CloakBrowser 是近期 GitHub Trending 上技术含量最高的项目之一。49 处 C++ 补丁的工作量不小,能把它包装成 pip install 一行搞定也说明工程化做得扎实。
如果你在做需要高隐蔽性的浏览器自动化,这个值得试。但记住——隐身是一种状态,不是一个设置。
主要来源: