跳到正文

开源的 Patchright 替代方案

Patchright 是目前维护得最好的 Playwright 补丁版:可直接替换原版,消除驱动层的自动化泄露。它不改变浏览器本身,所以网站读到的指纹仍然是你这台机器的。Clearcote 则往下深入一层,在引擎中工作,两者可以组合使用。

Patchright 是什么?

Patchright(由 Vinyzu 和 Kaliiiiiiiiii 开发)是 Playwright 的补丁版构建,支持 Python、Node.js 和 .NET。它采用 Apache-2.0 许可,紧跟 Playwright 的版本发布(撰写本文时为 1.63,与上游相同),使用量很大:PyPI 月下载量约 3.5M 次,npm 周下载量约 285,000 次。它只支持基于 Chromium 的浏览器。

它的补丁针对的是自动化驱动:通过在隔离的执行上下文中运行代码来避免 Runtime.enable 泄露;禁用 Console API(因此 console 事件不起作用);去掉 --enable-automation 并加上 --disable-blink-features=AutomationControlled;还能深入封闭的 shadow root。初始化脚本通过请求路由注入,README 也指出,这种方式可以通过时序被检测到。

Patchright 有意不去碰的是浏览器本身。它推荐运行真正的 Chrome,而它启动的任何 Chrome 都会报告你实际的硬件、GPU、字体和屏幕。在桌面环境下,这可能正是理想状态。但在服务器或 Docker 中,真实值就是虚拟机的值:软件 GPU、Linux 字体集、无头屏幕。而且这台机器上的所有会话都共享同一个身份。

Clearcote 与 Patchright 对比

功能ClearcotePatchright
作用层面 浏览器引擎(C++ / Blink) Playwright 驱动
驱动 / CDP 泄露 引擎消除 Runtime.enable 泄露;启动时即使用 isolated world 打过补丁的驱动避免调用 Runtime.enable;禁用 Console API
指纹身份 由种子生成的一致身份画像(canvas、WebGL、字体、navigator、屏幕) 主机的真实值
每台机器的身份数 每个种子一个,需要多少有多少 一个:机器本身
在服务器和 Docker 中 身份画像遮蔽虚拟机的软件 GPU 和字体 报告虚拟机的真实硬件
TLS / 网络层 ClientHello 跟随身份画像的 Chrome 版本 由所启动的 Chrome 决定
与 Playwright 版本同步 适配任意版本的原版 Playwright 每个 Playwright 版本都需要对应的补丁版
语言 Python、Node、.NET Python、Node、.NET
费用 开源版构建免费;最新构建凭 GitHub 免费使用;Pro $49/月 免费开源(Apache-2.0)

对比整理于 2026年9月。Patchright 的许可方式:开源(Apache-2.0);细节可能会变化,请以其项目的最新信息为准。

团队为什么选择 Clearcote

不同层面,而非竞争关系

检测会读取三个地方:驱动、CDP 会话和指纹。Patchright 处理的是前两处。Clearcote 在引擎中处理指纹,其默认启动设置也顾及了 CDP 这一侧。

由你选择的身份

在原版 Chrome 上使用 Patchright 时,指纹来自你运行它的那台机器。Clearcote 为每个种子提供一台自洽的独立机器,这在服务器上最为重要,因为服务器的真实环境看起来就像一台虚拟机。

无需同步维护驱动

Clearcote 使用官方的 Playwright 和 Puppeteer 包,你可以按它们自己的节奏升级,而不必等待打过补丁的版本。

一致性直达 TLS

身份画像所声明的 Chrome 版本会一直贯彻到 TLS ClientHello,网络层因此与 JavaScript 保持一致。

什么情况下 Patchright 可能更合适

  • 你在真实桌面上运行真正的 Chrome 和普通的用户配置文件,只需要消除驱动层的破绽。
  • 你想要一个可直接替换 Playwright 的方案,不想额外安装任何东西。
  • 或者两者一起用:Patchright 可以接受任意 Chromium 二进制文件,因此你可以保留它的驱动补丁,再通过 executable_path=clearcote.download() 把 Clearcote 放在底层。

常见问题

Patchright vs Clearcote:我该用哪个?

两者解决的是不同层面的问题。Patchright 给 Playwright 驱动打补丁,让自动化会话更难被察觉。Clearcote 给浏览器打补丁,让指纹(canvas、WebGL、字体、navigator、TLS)呈现为一致的身份画像,而不是你的主机。如果问题出在指纹上,单靠 Patchright 改变不了它。

Patchright 能和 Clearcote 一起用吗?

可以。Patchright 能启动任意 Chromium 二进制文件。用 SDK 的 download() 获取 Clearcote 的路径,作为 executable_path 传入,同时带上你的 --fingerprint 参数。

Patchright 会修改浏览器指纹吗?

不会。它修改的是启动参数以及驱动与浏览器的通信方式。canvas、WebGL、字体、屏幕和硬件信息都来自你运行的 Chrome 及其所在的机器。

为什么 console.log 在 Patchright 中不起作用?

Patchright 禁用了 Console API,以避免 CDP Runtime 和 Console 域带来的一个可被检测的副作用。其 README 建议:如果需要控制台输出,可以使用 JavaScript 日志库。

相关阅读

问答What is CDP detection?The Chrome DevTools Protocol drives automation but leaves side-effects — Runtime.enable, injected init scripts, main-world execution — that a page can observe. Spotting those is CDP detection.文档机器人检测原理:JS 伪装为何失效机器人检测的三个层次、JS 伪装为何自我暴露(toString、描述符、realm),以及 C++ 引擎如何让 JS 与 TLS 保持一致。对比Clearcote 与 rebrowser-patches 对比rebrowser-patches 在 Puppeteer 和 Playwright 的 Runtime.enable 泄露问题上做了重要工作,它的 bot-detector 页面至今仍是一个有用的测试。但补丁版包最后一次发布是在 2025 年 5 月,而且只涉及驱动层。Clearcote 在启动时和引擎中处理 CDP 这一侧,同时还会修改指纹。对比Clearcote 与 Camoufox 对比Camoufox 是一款做得很好的开源指纹浏览器,基于 Firefox。Clearcote 把同样的引擎层面思路用在 Chromium 上,让你的自动化呈现的是约 69% 的网民实际在用的浏览器,而不是只有约 3% 的人在用的那一款。对比Clearcote 与 CloakBrowser 对比CloakBrowser 是一款能力扎实的引擎层面 stealth Chromium,用户众多,但其打过补丁的二进制文件是闭源的。Clearcote 同样工作在引擎层面,运行更新的 Chromium,并提供开源版构建,其中每个补丁你都能阅读并重新构建。对比Clearcote 与 undetected-chromedriver 对比undetected-chromedriver 每月下载量仍有约 2M 次,但它的最后一个版本发布于 2024 年 2 月。它在原版 Chrome 上隐藏 Selenium/ChromeDriver 的痕迹,却完全不涉及指纹或网络层。Clearcote 在引擎中同时修改这两者。

试试这款开源 Chromium 替代方案

免费开源,可直接接入 Playwright 与 Puppeteer,一直到 TLS 握手都保持一致。

通过 GitHub 可免费使用一个浏览器。无需信用卡。