开源的 Zendriver 替代方案
Zendriver 是 nodriver 的社区分支:快速、异步、只用 CDP,向社区开放贡献,并支持 Docker。和 nodriver 一样,它驱动的是原版 Chrome,所以指纹仍然是你这台机器的。Clearcote 在引擎中修改这个指纹,而 Zendriver 可以驱动 Clearcote。
Zendriver 是什么?
Zendriver 是 nodriver 的一个分支,创建它是为了合并在上游搁置的 pull request、加入静态类型和 lint 检查,并向社区开放贡献。它以异步为先,直接与 Chrome DevTools Protocol 通信,不经过 Selenium 或 WebDriver,并配有一套 Docker 方案,用于在 Linux 上运行 GPU 加速的有头 Chrome。它采用 AGPL-3.0 许可,GitHub 星标约 1,450 个,PyPI 月下载量约 270,000 次,并于 2026 年 9 月下旬发布了 0.17 版;这一版改动很大,引入了 nodriver 自分支以来新增的功能。
Zendriver 继承了 nodriver 的设计:它彻底去掉了 WebDriver 可检测面,但它控制的 Chrome 未经修改。canvas、WebGL、字体和硬件都来自主机。自 0.17 起,每个浏览器 context 可以使用各自的代理,但无法给某个会话换一个不同的设备指纹。AGPL-3.0 许可证是带网络条款的强 copyleft,如果你把它作为托管服务的一部分运行,这一点就很重要。
Clearcote 与 Zendriver 对比
| 功能 | Clearcote | Zendriver |
|---|---|---|
| 实现方式 | 引擎层面的 C++ 补丁 | 原版 Chrome 上的直连 CDP 客户端 |
| 指纹身份 | 由种子生成的一致身份画像 | 主机的真实值 |
| WebDriver 可检测面 | 无:通过 CDP 驱动 | 无:通过 CDP 驱动 |
| Docker | 带 CDP 端点的官方镜像 | 配套镜像,用于运行 GPU 加速的 Chrome(Linux) |
| TLS / 网络层 | ClientHello 跟随身份画像的 Chrome 版本 | 由本地 Chrome 决定 |
| 接口 | Playwright 与 Puppeteer,外加原始 CDP 端点 | 自有的异步 Python API |
| 许可证 | 开源版构建:BSD-3 | AGPL-3.0(网络 copyleft) |
| 费用 | 开源版构建免费;最新构建凭 GitHub 免费使用;Pro $49/月 | 免费开源 |
对比整理于 2026年11月。Zendriver 的许可方式:开源(AGPL-3.0);细节可能会变化,请以其项目的最新信息为准。
实测:12 款工具,同样的 10 个网站
我们运行了开源的 browsers-benchmark 测试框架共 5 次,最后一次于 2026年10月27日 完成。每个工具都使用独立的美国住宅 IP,且每次运行的顺序都不同。“通过”表示该框架针对该网站的自带检查找到了页面本身,而不是拦截页或验证页。 Clearcote 在 Windows 台式机上测量(最新构建);其他工具在 Linux 服务器上测量。
| 工具 | 有头 | 无头 |
|---|---|---|
| Clearcote0.63.2 · r52 | 78%39/50 | 80%40/50 |
| Camoufox0.5.8 · v156.0.1-beta.36 | 72%36/50 | 80%40/50 |
| Invisible Playwright0.43.0 · Firefox | 76%38/50 | 78%39/50 |
| CloakBrowser0.6.4 | 74%37/50 | 64%32/50 |
| SeleniumBase (CDP mode)4.49.0 · Chrome | 74%37/50 | — |
| nodriver0.50.6 · Chrome | 74%37/50 | 40%20/50 |
| Zendriver0.17.1 · Chrome | 64%32/50 | 60%30/50 |
| tf-playwright-stealth (Firefox)1.2.0 | 58%29/50 | 62%31/50 |
| tf-playwright-stealth (Chromium)1.2.0 | 56%28/50 | 50%25/50 |
| Playwright (Chromium)1.62.0 | 56%28/50 | 30%15/50 |
| Playwright (Firefox)1.62.0 | 54%27/50 | 54%27/50 |
| Patchright1.64.3 · Chrome | 24%12/50 | 26%13/50 |
网站:搜索结果页, 社区论坛, 软件公司网站, 奢侈品零售商, 电商平台商品页, 票务网站, 时装零售商, 旅行预订网站, 航空公司, 社交网络。 这只是一个网络环境、一周时间内的快照:结果会随每次发布、每个代理以及网站本身而变化,而且没有任何工具每次都能加载每个网站。原始结果(JSON)。
团队为什么选择 Clearcote
改变浏览器报告的内容
Zendriver 对 Chrome 的控制很干净,但 Chrome 本身是原版的。Clearcote 在引擎中设置 canvas、WebGL、字体、屏幕和硬件,构成一个自洽的身份画像。
一台主机,多个身份
每个种子都对应一台独立的机器,并行会话不会共享所在服务器的指纹。
宽松的许可证
AGPL-3.0 对网络服务附带义务。Clearcote 的开源版构建采用 BSD-3,没有这类义务。
可与 Zendriver 搭配
Zendriver 的 browser_executable_path 可以接受任意 Chromium 二进制文件,包括 Clearcote。
什么情况下 Zendriver 可能更合适
- 你喜欢 nodriver 风格的异步 API,而且对你的目标网站来说,主机自身的指纹可以接受。
- 按你的使用方式,AGPL-3.0 没有问题。
- 或者让 Zendriver 跑在 Clearcote 上:把二进制文件作为
browser_executable_path传入,把指纹参数作为browser_args传入。
常见问题
Zendriver vs nodriver:有什么区别?
Zendriver 是 nodriver 的分支,合并了积压的修复,加入了 lint 检查和类型标注,开放了 issue 跟踪,并增加了 Docker 支持。核心思路不变:一个直连原版 Chrome 的 CDP 客户端。
Zendriver 会修改浏览器指纹吗?
不会。它去掉了 WebDriver 层,但 canvas、WebGL、字体、屏幕和硬件信息都来自它启动的 Chrome 及其所在的机器。
Zendriver 能驱动 Clearcote 吗?
可以。把 browser_executable_path 设为 Clearcote 二进制文件(SDK 的 download() 会返回其路径),并在 browser_args 中传入 --fingerprint。
补丁数是我们比较过的任何分支的两倍以上。
按方案统计编译进 Chromium 的补丁。基于脚本的工具完全不改动引擎。
隐身插件
例如 puppeteer-extra-plugin-stealth
打过补丁的驱动
例如 undetected-chromedriver、nodriver
其他 Chromium 分支
免费版与付费版构建
Clearcote Pro
r57,Chromium 156
公开的补丁数,截至 2026年10月。区间涵盖其他分支的免费版与付费版构建;Clearcote 的数字来自 Pro 版构建。
相关阅读
试试这款开源 Chromium 替代方案
免费开源,可直接接入 Playwright 与 Puppeteer,一直到 TLS 握手都保持一致。
一个浏览器免费:GitHub、银行卡验证或公司 Google 账号。绝不扣款。