反检测浏览
反检测版 Playwright,绕过 Cloudflare/Kasada/Datadome 等机器人检测,Python/Node 双端可直接替换原版做自动化
🎭 Patchright
Patchright 是 Playwright 测试与自动化框架的一个修补且不被检测的版本。
它可以用作 Playwright 的直接替代品。
[!NOTE]
本仓库提供 Patchright Driver。要使用 Patchright,请查看 Python Package、NodeJS Package 或社区驱动的 .Net Package。
[!IMPORTANT]
Patchright 仅修补基于 CHROMIUM 的浏览器。不支持 Firefox 和 Webkit。
赞助商
想要赞助此项目?在 Discord 上联系 @vinyzu!
Swiftproxy:高性能住宅代理,适用于可扩展的数据采集
专为需要可靠、反检测代理基础设施的开发者打造。Swiftproxy 提供稳定连接、高成功率以及灵活的控制,适用于大规模爬取和自动化。
- 🌍 195+ 个地区,附带合法来源的住宅 IP
- 🔄 轮换和粘性会话,带有精确的地理定位
- ⚡ 针对反封禁和高成功率进行了优化
- 🔌 支持 HTTP / HTTPS / SOCKS5
- 🧪 500MB 免费试用供测试
- 💸 为 Patchright 用户提供的特别折扣代码:PROXY90 - 10% 折扣
适用于:网页爬取、自动化、多账户管理和大规模数据提取
RapidProxy 提供稳定且高性能的代理网络,专为大规模数据操作而构建。
RapidProxy 提供:
- 🌍 9000 万+ 住宅 IP(200+ 个地区)
- 🔄 轮换住宅代理 — 从 $0.65/GB 起(流量永不过期)
- 🧩 静态住宅 IP — $5/IP(30 天,无限流量)
- 🎯 精确的地理定位
- ⚡ 提供免费试用 — 零风险测试代理性能
- 专为爬取、自动化和高性能数据工作流而设计
- 🔥 特惠:使用代码 RAPID10 享受 10% 折扣
快速起步。全球扩展。通过 RapidProxy 保持稳定。
NodeMaven:您的可靠代理提供商,提供高质量 IP。
自动化、网页爬取、SEO 研究和社交媒体管理的绝佳解决方案。
为什么选择 NodeMaven?
✅ 99.9% 正常运行时间
🎯 粘性会话最长 7 天
🔍 IP 过滤:代理保证欺诈评分低于 97%
🔰 无需 KYC
💸 流量返现 - 消耗 GB 并赚取最高 10% 返利
为 Patchright 用户提供的特别代码:
🔥 PATCHRIGHT35 - 35% 折扣(移动和住宅代理)
🔥 PATCHRIGHT40 - 40% 折扣(ISP 静态代理)
选择 NodeMaven 的品质与稳定性。
ColaProxy:低成本住宅代理,适用于可扩展的自动化、爬取和全球数据访问
为什么选择 ColaProxy?
- 动态住宅代理低至 $0.3/GB
- 覆盖 195+ 个国家的大型住宅 IP 池
- 99.9% 正常运行时间,连接稳定快速
- 支持 HTTP / HTTPS / SOCKS5 协议
- 轮换和粘性会话,适合灵活自动化
- 精确的国家级地理定位
- 7×24 小时专家支持
需要为 Patchright 自动化寻找可靠的代理?ColaProxy 提供经济实惠的住宅、ISP 和移动代理解决方案,适用于爬取、测试、账户管理、SEO 监控和全球数据收集。使用优惠券代码 COLA20,享受订单 20% 折扣。
价格实惠、稳定,且专为开发者打造。使用 ColaProxy 开始扩展您的 Patchright 项目。
补丁
Runtime.enable 泄漏
这是 Patchright 使用的最大的补丁。为避免被此泄漏检测,Patchright 通过(隔离的)ExecutionContext 中执行 Javascript 来避免使用 Runtime.enable。
Console.enable 泄漏
Patchright 通过完全禁用 Console API 来修补此泄漏。这意味着控制台功能将在 Patchright 中无法使用。如果你确实需要控制台,或许最好使用 Javascript 日志记录器,尽管它们也容易被检测到。
命令行标志泄漏
Patchright 调整了 Playwright 的默认参数,以避免被命令行标志泄漏检测到。这(最主要地)影响:
--disable-blink-features=AutomationControlled(添加)以避免 navigator.webdriver 检测。--enable-automation(移除)以避免 navigator.webdriver 检测。--disable-popup-blocking(移除)以避免弹窗崩溃。--disable-component-update(移除)以避免被检测为 Stealth Driver。--disable-default-apps(移除)以启用默认应用。--disable-extensions(移除)以启用扩展
通用泄漏
Patchright 修补了 Playwright 代码库中的一些通用泄漏。这主要包括不良设置和明显的检测点。
Closed Shadow Roots
Patchright 能够与 Closed Shadow Roots 中的元素进行交互。只需使用普通的定位器,剩下的交给 Patchright。
Patchright 现在还能够使用 XPaths 来定位 Closed Shadow Roots。
隐身防护
通过正确的配置,Patchright 目前被认为是无法检测的。 Patchright 通过了:
- Brotector ✅ (配合 CDP-Patches)
- Cloudflare ✅
- Kasada ✅
- Akamai ✅
- Shape/F5 ✅
- Bet365 ✅
- Datadome ✅
- Fingerprint.com ✅
- CreepJS ✅
- Sannysoft ✅
- Incolumitas ✅
- IPHey ✅
- Browserscan ✅
- Pixelscan ✅
错误
尽管我们花了很多时间让 Patchright 尽可能稳定,但错误仍可能发生。如果您遇到任何错误,请在 Issues 中报告。
Patchright 现在在每次发布后都会针对 Playwright 测试进行测试。参见 这里
[!WARNING]
Patchright 通过了大部分 Playwright 测试,但并非全部。一些错误被认为无法解决,一些则无关紧要。请参阅 此处 的错误列表及其说明。
基于 Playwright 测试,我们得出结论:在常规使用场景中,您受到这些错误影响的可能性极低。
初始化脚本的把戏
说明
为了能够在不使用 Runtime.enable 的情况下使用 InitScripts,Patchright 利用 Playwright Routes 将 JavaScript 注入到 HTML 请求中。
错误
Playwright Routes 可能会在代码的其他部分引起一些错误。Patchright InitScripts 不会引起任何普通 Playwright Routes 不会引起的错误。
如果您希望修复这些错误,则必须联系 Playwright 团队。
泄漏
Patchright InitScripts 可以通过时序攻击被检测到。然而,目前没有反机器人程序检查这种时序攻击,并且可能在相当长一段时间内也不会检查。
我们认为它们不被检测到的风险不大。
待办事项
- 实现选择执行上下文(主/隔离)的选项。
- 修复可修复的错误。
- 实现 .patch 更新器以轻松显示 Patchright 的补丁。
- 设置新版本自动测试。
- 在 .NET 上实现 Patchright。
- 在 Java 上实现 Patchright。
开发
新版本 Patchright 的部署是自动的,但由于 Playwright 代码库变更导致的错误仍可能发生。这些错误的修复可能需要几天时间才能发布。
支持我们的工作
如果您选择支持我们的工作,请在 Discord 上联系 @vinyzu 或 @steve_abcdef。
版权与许可
© Vinyzu
Patchright 采用 Apache 2.0 许可证。
代码库的 某些部分 受 Driverless 启发。 感谢 Nick Webson 提供了 .patch 文件文档的想法。
免责声明
本仓库仅供教育目的使用。
不就准确性、完整性或任何目的的适用性提供任何担保。使用风险自负——作者和维护者对于因使用、修改或分发本代码而产生的任何损害、法律问题或违反保证承担不承担任何责任。
任何滥用或违法行为均由用户自行承担全部责任。
