invisible_playwright 是一个开源的反检测浏览器自动化工具,基于 Playwright API 构建,但底层使用经过 C++ 源码级修补的 Firefox 浏览器,以规避反机器人系统的检测。其核心目标是让自动化脚本在访问网站时不被识别为机器人,从而减少验证码(如 reCAPTCHA、hCaptcha、Cloudflare Turnstile)的触发。
用途
该工具主要用于 Python 网页抓取和浏览器自动化场景,特别是那些需要绕过反机器人检测的任务。它适用于需要模拟真实用户行为、避免被网站封锁或要求验证码的自动化流程。
主要能力
- 反检测指纹:浏览器指纹在引擎内部设置,而非通过 JavaScript 注入。涵盖 navigator、屏幕、GPU/WebGL、Canvas、字体、音频、WebRTC、时区、网络等约 200 个字段。每个会话生成随机指纹,也可通过种子复现。
- 人性化操作:驱动层对点击、悬停、拖拽等操作模拟自然鼠标路径和人类时序,输入事件来自真实输入路径,确保 isTrusted 为 true。
- 兼容 Playwright API:支持同步和异步 API,无需修改现有代码即可切换。浏览器对象为标准的 playwright.sync_api.Browser 或 playwright.async_api.Browser。
- 代理支持:支持 socks5、socks4、http、https 代理,DNS 默认通过代理路由,避免本地泄漏。时区可跟随出口 IP 自动设置。
- 指纹固定:可通过种子固定特定指纹字段,如 GPU 等,其余字段仍由种子派生。
- 跨平台一致性:Canvas 和 WebGL 在不同操作系统上对同一种子保持一致。
使用方式
- 安装:需要 Python 3.11 或更高版本。安装命令为
invisible-playwright(带连字符),也可使用python -m invisible_playwright。 - 切换:如果已有 Playwright 代码,只需两行更改即可切换到 invisible_playwright。
- 配置:支持代理、时区设置,可通过种子复现运行,也可固定特定指纹字段。
- 命令行:提供 CLI 工具。
- 集成:可作为 MCP 服务器使用(通过
uvx aihawk),也可与 AIHawk 界面配合,需要 OpenRouter 密钥。
适用场景
- 网页抓取:需要绕过反机器人检测的数据采集任务。
- 自动化测试:需要模拟真实用户行为的测试场景。
- AI 代理:作为 AI 代理的浏览器自动化引擎。
- 隐私保护:需要隐藏真实浏览器指纹的自动化操作。
限制
- 部分 Playwright 功能不在支持范围内,如 tracing、HAR、CDP、API 请求上下文等,这些功能会明确拒绝并说明原因。
- 仅支持 Windows x86_64 和 Linux x86_64/arm64 平台。
- 需要 Python 3.11 或更高版本。
- 项目声明仅供教育目的,按原样提供,不提供任何保证,使用者需自行承担风险并遵守当地法律。
- 修补的 Firefox 二进制遵循 MPL-2.0 许可证,C++ 补丁位于 feder-cr/firefox_antidetect_patch。
相关项目
- invisible_core:负责种子到指纹、偏好设置、代理和地理定位。
- AIHawk:将引擎作为 MCP 服务器,并提供包含模型的界面。
- 其他类似项目:Camoufox、Patchright、nodriver、playwright-stealth 等,各有不同侧重点。