Patchright — Playwright 的免检测补丁版
- 来源: https://github.com/Kaliiiiiiiiii-Vinyzu/patchright
- 日期: 2026-06-13
- 状态: 持续活跃开发,Python/NodeJS/.NET 三端支持
一句话版本
Patchright 是一个被"打过补丁"的 Playwright——不是改浏览器底层代码,而是魔改了 Playwright 自动化框架本身,去掉那些会让反爬系统识别出自动化工具的 CDP 协议特征(比如 Runtime.enable 这个 CDP 调用泄漏)。改一行 import 就能用,比 CloakBrowser 轻量,但效果稍弱一些。
核心内容
它和 CloakBrowser 有什么不同?
这是理解 Patchright 的关键。
| 维度 | CloakBrowser | **Patchright** |
|---|---|---|
| 改了什么 | Chromium 浏览器 C++ 源码(58 个补丁) | Playwright 自动化框架(TypeScript 补丁) |
| 二进制 | 自带~200MB 特殊编译的 Chromium | 用系统 Chrome 或 Playwright 自带 Chromium |
| 补丁层级 | 浏览器二进制层 | 框架 + CDP 协议层 |
| 大小 | pip/npm 包 + ~200MB 二进制 | 纯 Python 包,无额外二进制 |
| 核心补丁 | 指纹伪造(GPU/Canvas/WebGL 等) | CDP 协议泄漏修复 |
简单说:CloakBrowser = 假 Chrome,Patchright = 真 Chrome + 真 Playwright 但改掉了被检测的协议特征。
Patchright 的 5 个关键补丁
| 补丁 | 说明 | 代价 |
|---|---|---|
| Runtime.enable 泄漏修复 | 避免 Playwright 启动时这个 CDP 调用——反爬系统通过检测这个来识别 Playwright | ✅ 最大的贡献 |
| Console.enable 泄漏修复 | 禁用 Console API,防止被扫描 | ❌ console 不能用了 |
| 命令行参数泄漏修复 | 添加 `--disable-blink-features=AutomationControlled`,移除 `--enable-automation` 等 | ✅ 无害 |
| 常规泄漏修复 | 修复 Playwright 代码库中其他可检测点 | ✅ |
| Closed Shadow Roots | 能操作封闭的 shadow DOM 元素 | ✅ 有用的功能优势 |
核心设计思路
Patchright 的作者认为反爬检测的核心不是浏览器指纹,而是自动化协议特征。很多反爬系统(尤其是 Cloudflare)不检测 navigator.webdriver,而是检测 Playwright 在 CDP 握手时发出的特定调用序列(比如 Runtime.enable)。
所以它的策略是:
1. 不修改 Chromium 本身——用系统安装的 Chrome(channel=chrome),天然就有真实 Chrome 的 TLS 指纹
2. 只修改 Playwright 的 CDP 调用方式——避免触发协议级检测
3. 依赖真实 Chrome 的指纹——Chrome 148 的 TLS 指纹本身就是最有效的伪装
独立测试数据
Ian Paterson 基准测试(2026年5月):7 款工具 × 31 个反爬目标
| 工具 | 通过数 | 说明 |
|---|---|---|
| nodriver | **28/31** | 直接 CDP 驱动 Chrome,无 Playwright |
| CloakBrowser | 26/31 | 源码级 C++ 补丁 |
| **Patchright** | **25/31** | 与 Camoufox 持平 |
| vanilla Playwright | 24/31 | 基线 |
| rebrowser | 24/31 | 已停滞 |
关键发现:
- Patchright 在 stackoverflow 上赢了 vanilla(25 vs 24),但 google-search 的盲点和 vanilla 一样
channel=chrome比补丁本身更重要——用系统 Chrome 148 的真实 TLS 指纹比任何补丁都有效- Patchright 的补丁解决了部分 CDP 泄漏,但 Playwright 的运行时特征仍然会导致部分检测
Send.win 对比(2026年6月):
| 检测服务 | Playwright-Stealth | Patchright |
|---|---|---|
| Cloudflare 标准挑战 | ~70-80% 通过 | ~90-95% 通过 |
| Cloudflare Turnstile | ~40-55% 通过 | ~70-80% 通过 |
| DataDome | ~30-50% 通过 | ~55-70% 通过 |
| PerimeterX/HUMAN | ~25-40% 通过 | ~50-65% 通过 |
| Akamai Bot Manager | ~35-50% 通过 | ~55-70% 通过 |
| CreepJS | 部分通过,可见覆盖痕迹 | 更干净 |
已知局限
1. Console API 完全不可用——这是最严重的功能牺牲
2. Chromium 只——不支持 Firefox/WebKit
3. 版本滞后——每次 Playwright 更新后需要等待 Patchright 跟进,通常数天到数周
4. 非 100% Playwright API 兼容——已知 bug 列表(issue #30),部分测试不通过
5. InitScripts 存在理论检测风险——使用 Playwright Routes 注入 JS,理论上可通过 Timing Attack 检测(但当前无反爬实现)
6. Tier 3 检测(TLS 指纹/行为分析)依然无效——所有补丁类工具的共性问题
商业模式
- 完全开源(Apache 2.0)
- 无订阅无收费
- 赞助商:Swiftproxy、RapidProxy、NodeMaven(代理服务商提供 Patchright 用户折扣码)
- 个人作者维护,社区驱动
与 CloakBrowser 的对比(基于我们的报告)
| 维度 | CloakBrowser | Patchright |
|---|---|---|
| 思路 | 改浏览器本身 | 改自动化框架 |
| 手法 | 58 个 C++ 补丁,编译进二进制 | TypeScript 补丁,运行时生效 |
| 独立测试 | 26/31 OK | 25/31 OK |
| 二进制大小 | ~200MB | 无额外二进制 |
| 协议层修复 | ❌ Playwright 协议指纹未修复 | ✅ Runtime.enable 泄漏是核心 |
| macOS 支持 | ❌ 滞后 2 个月 | ✅ 依赖系统 Chrome,天然支持 |
| 功能影响 | 无 | ❌ Console API 不可用 |
| 更新节奏 | CloakHQ 维护,Chromium 升级 | 需跟踪 Playwright 上游 |
| Stars | ~13.5k | ~3.2k |
| 许可 | MIT + 二进制自定义 | Apache 2.0 |
结论:Patchright 和 CloakBrowser 是互补而非替代关系。CloakBrowser 解决浏览器指纹,Patchright 解决自动化协议指纹。理想方案是两者结合(但目前没有直接整合)。
评分
| 维度 | 评分 | 说明 |
|---|---|---|
| 创新性 | ⭐⭐⭐⭐ | CDP 协议级补丁思路有原创性,尤其是 Runtime.enable 修复 |
| 实用性 | ⭐⭐⭐⭐ | pip/npm 安装,改一行 import,但 console 不能用是硬伤 |
| 性能 | ⭐⭐⭐⭐⭐ | 无额外二进制开销,零重量 |
| 效果 | ⭐⭐⭐⭐ | 比 Playwright-Stealth 好很多,但不如 CloakBrowser 和 nodriver |
| 成熟度 | ⭐⭐⭐ | 已知 bug 较多,版本滞后,个人项目维护 |
| 社区 | ⭐⭐⭐ | 3.2k stars,活跃但规模小,个人作者驱动 |
| 文档 | ⭐⭐⭐⭐ | README 完整,patch 有详细说明 |
| **综合** | **⭐⭐⭐⭐** | **轻量级 Playwright 隐身方案,适合 CDP 协议指纹为主要障碍的场景** |
扩展阅读
- GitHub: https://github.com/Kaliiiiiiiiii-Vinyzu/patchright
- Python 包: https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python
- NodeJS 包: https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs
- .NET 包: https://github.com/DevEnterpriseSoftware/patchright-dotnet
- Ian Paterson 基准测试: https://ianlpaterson.com/blog/anti-detect-browser-benchmark-patchright-nodriver-curl-cffi/
- Send.win 对比文章: https://blog.send.win/patchright-vs-playwright-stealth-complete-comparison-alternatives-2026/
- 相关:CloakBrowser 报告: https://temp.jaylab.io/cloakbrowser-report.html