1. 项目概述
invisible_playwright 是一个旨在绕过机器人检测的隐形 Firefox 浏览器,它通过在 C++ 级别而非 JavaScript 层面修补浏览器指纹,以实现高度的隐蔽性。该项目作为 Playwright 的直接替代品,提供了 100% 的 API 兼容性,使得现有 Playwright 用户可以轻松切换。其核心优势在于能够通过所有机器人检测测试,包括 reCAPTCHA v3 和 CreepJS 的“谎言检测器”。
2. 核心功能与技术原理
2.1 C++ 级别修补
与大多数在 JavaScript 层面修补 navigator、WebGLRenderingContext.getParameter、Canvas API 等的防检测浏览器不同,invisible_playwright 在 C++ 级别对 Firefox 进行了修补。这意味着伪造的值通过正常的 Gecko 路径返回,没有 JavaScript shim、没有覆盖、也没有 Object.defineProperty。从页面的角度来看,浏览器只是在“说真话”,这使得反机器人谎言检测器无法捕捉到任何异常。
2.2 指纹伪装
invisible_playwright 能够全面伪装所有关键层面的指纹信息,包括:
- Navigator: 浏览器用户代理等信息。
- 屏幕 (Screen): 屏幕分辨率、可用区域等。
- GPU/WebGL: 图形处理器信息和 WebGL 参数。
- Canvas: Canvas 渲染指纹。
- 字体 (Fonts): 系统安装字体列表。
- 音频 (Audio): 音频上下文参数。
- WebRTC: 避免 IP 地址泄露。
- 时区 (Timezone): 浏览器时区设置。
- DevTools 检测: 绕过开发者工具的检测。
- SOCKS5 认证: 支持代理认证。
所有这些伪装值都由偏好设置驱动,而非硬编码,用户可以通过修改偏好设置来改变伪装值。
2.3 Playwright 兼容性
invisible_playwright 与 Playwright 100% 兼容,支持同步和异步模式,所有方法均可直接使用,无需更改 API。这意味着现有的 Playwright 脚本只需少量修改即可使用 invisible_playwright,例如:
- from playwright.sync_api import sync_playwright
- with sync_playwright() as p:
- browser = p.firefox.launch()
+ from invisible_playwright import InvisiblePlaywright
+ with InvisiblePlaywright() as browser:
2.4 指纹生成与定制
每个会话都会从真实的 Firefox 遥测数据(包括 GPU、音频、字体等约 400 个字段)中生成一个独特且一致的指纹,并内置贝塞尔曲线鼠标移动轨迹。用户可以通过 seed 参数复现特定指纹,也可以通过 pin 参数强制指定某些字段的值,同时让其他字段保持通过贝叶斯采样器生成,以实现高度定制化。
3. 竞品分析
invisible_playwright 的 README 文档中详细对比了其与现有反检测浏览器和 Firefox 强化项目的异同。以下是主要对比点:
3.1 与基于 Chromium 的方案对比
大多数其他反检测浏览器(如 CloakBrowser)主要修补 Chromium。然而,invisible_playwright 指出基于 Chromium 的方案存在两个致命问题 [1]:
- JS 补丁可检测性: JavaScript 补丁容易被检测到。反机器人系统可以通过检查原生函数的
toString()、描述符可配置性、属性枚举顺序和原型变异来发现这些补丁。CreepJS 等工具内置了大量的“谎言检测器”来识别这些指纹。 - Chromium 本身的可疑性: 住宅代理机器人流量绝大多数基于 Chromium,因此检测器默认将任何 Chromium 形状的浏览器视为高风险。尽管基于 Chromium 的分支继承了 Chrome 的开源层,但它们无法完全匹配 Chrome 的实际表现,因为 Chrome 包含闭源组件(如 Widevine、专有编解码器、Google Update / Safe Browsing 端点),这些组件会触发可检测的 JS 功能标志和网络信号。此外,分支版本通常滞后于 Chrome 的发布节奏,留下可供检测器识别的版本特定行为。
3.2 与现有 Firefox 强化项目对比
invisible_playwright 也借鉴并超越了现有的 Firefox 强化项目 [1]:
- arkenfox/user.js: 这是一个通过偏好设置强化 Firefox 隐私/安全配置的权威项目。
invisible_playwright在此基础上,通过修补 C++ 源代码解决了仅凭偏好设置无法解决的问题,例如 Canvas 噪声、WebGL 参数覆盖、字体白名单、WebRTC IP 交换和 DevTools 检测绕过。 - LibreWolf: 这是一个捆绑了合理隐私默认设置的 Firefox 分支。
invisible_playwright与其受众相同,但分发模型不同:LibreWolf 发布配置好的 Firefox 二进制文件,而invisible_playwright发布源代码补丁和一个用于自动化的包装器。 - Camoufox: 最知名的开源反检测 Firefox 项目。
invisible_playwright与其在指纹伪装方面有相似的设计目标,但实现方法不同。Camoufox 修补了更广泛的表面并拥有自己的指纹数据库,而invisible_playwright更接近原版 Firefox,并通过贝叶斯采样器驱动指纹伪装。
3.3 与商业反检测浏览器对比
商业反检测浏览器(如 Multilogin、GoLogin、AdsPower、Dolphin、Kameleo)通常是付费 SaaS 服务,它们在修补过的 Chromium 上叠加 JavaScript 层的伪装。invisible_playwright 强调其在 C++ 级别的修补深度和开源性质是其优势 [1]。
以下表格总结了 invisible_playwright 与主要竞品的对比:
| 特性 | invisible_playwright | Camoufox | CloakBrowser | Multilogin Engine |
|---|---|---|---|---|
| 浏览器 | Firefox 150 | Firefox (~1 年旧版本) | Chromium | Chromium fork |
| 补丁深度 | C++ 源代码 | C++ 源代码 | C++ 源代码 | JS 覆盖 |
| 维护状态 | 活跃 | 存在差距 (~1 年) | 活跃 | 活跃 |
| 开源 | ✅ MIT | ✅ MPL | ❌ 闭源 | ❌ 闭源 |
.toString() 清洁 | ✅ | ✅ | ✅ | ❌ 可检测的 shim |
| Canvas/WebGL/Audio | ✅ C++ | ✅ C++ | ✅ C++ | ❌ |
| SOCKS5 认证 | ✅ 已修补 | ❌ | ❌ | ✅ |
| reCAPTCHA v3 分数 | 0.90 | ~0.3-0.5 | ~0.3-0.5 | ~0.3-0.6 |
| FP Pro - 机器人检测 | ✅ 未检测 | ❌ 已检测 | ❌ 已检测 | ❌ 已检测 |
| CreepJS 谎言 | ✅ 0 | ❌ 多个 | ✅ 0 | ❌ 多个 |
| 成本 | 免费 | 免费 | 免费 | 从 $99/月起 |
4. 总结
invisible_playwright 通过其独特的 C++ 级别修补方法,为 Playwright 用户提供了一个强大的反检测解决方案。它在指纹伪装的深度和隐蔽性方面表现出色,尤其是在绕过复杂的机器人检测系统方面。与现有竞品相比,invisible_playwright 在开源性、补丁深度和检测规避能力上具有显著优势,并且免费提供,使其成为需要进行网络自动化和数据抓取任务的开发者的一个极具吸引力的选择。
5. 参考文献
[1] feder-cr/invisible_playwright. Stealth Firefox that passes every bot detection test. Drop-in Playwright replacement, fingerprint patched at the C++ level, not a JavaScript shim. https://github.com/feder-cr/invisible_playwright
[2] feder-cr/invisible_playwright. pinning.md. https://github.com/feder-cr/invisible_playwright/blob/main/docs/pinning.md
相关推荐

2025 AI 技术峰会

AI 实战课程
热门工具
AI 助手
智能对话,提升效率
智能图像处理
一键美化,智能修图
AI 翻译
多语言实时翻译





评论 (0)
暂无评论,快来发表第一条评论吧!