返回更新列表
新发布Aug 31, 2026

invisible_playwright v0.7.2

免费的反检测浏览器隐身方案,适用于 Playwright:无法被检测的无头 Firefox 指纹。Python 爬取、reCAPTCHA 与机器人检测绕过。开源。

分享
invisible_playwright

适用于 Playwright 的免费反检测浏览器隐身方案:未检测的 Firefox 指纹,支持无头或有头模式。
Python 网页抓取与验证码绕过。开源,并通过所有机器人检测测试。

invisible_playwright - 5/5 检测套件通过

工作原理

反机器人机制会提出两个问题,而 reCAPTCHA、hCaptcha 和 Cloudflare Turnstile 会对答案进行评分。invisible_playwright 对两者都回答“是”。

1. 这是真实浏览器吗? 是的。它是 Firefox,在 C++ 源码层面进行了修补。

  • 浏览器指纹在引擎内部设置,而非注入页面:navigator、屏幕、GPU/WebGL、canvas、字体、音频、WebRTC、时区、网络。无论无头还是有头模式,值均相同。
  • 无 JS shim、无覆盖、无接缝可读取。

2. 是真实用户在使用吗? 是的。操作在驱动层已人性化。

  • 每次点击、悬停和拖拽都遵循自然的鼠标路径并带有拟人化时序,光标不会瞬移。
  • 每次输入都与真实鼠标逐字节一致:真实输入源、压力、可信事件。

由标准 Playwright API 驱动。完整解析:feder-cr/firefox_antidetect_patch


仍然遇到验证码或反机器人机制?问题出在代理上。

一旦浏览器被处理妥当,它就不再是变量。如果你仍被挑战,关键已不在浏览器,而在于你来自的 IP。约 90% 的代理是公共的:任何人都能租用同一地址,因此它已被知晓并出现在网站检查的封禁 IP 列表中。一个完美的浏览器配上已知 IP 仍然会失败。


安装

pip install invisible-playwright
python -m invisible_playwright fetch      # 一次性约 238 MB 下载(解压后约 544 MB),sha256 校验

支持的平台:Windows x86_64Linux x86_64 / arm64。macOS 不再受支持(版本止步于 firefox-20);在 Mac 上,包会在启动时以明确消息拒绝运行,而非下载已不存在的二进制文件。


用法

每次会话随机指纹

100% Playwright 兼容 - 同步与异步、所有方法、零 API 变更。如果你已在用 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:

每次会话都会获得不同的指纹(GPU、音频、字体、屏幕、约 200 个字段)以及贝塞尔曲线鼠标移动。

同步

from invisible_playwright import InvisiblePlaywright

with InvisiblePlaywright(proxy={"server": "socks5://...", "username": "u", "password": "p"}) as browser:
    page = browser.new_page()
    page.goto("https://example.com")
    page.click("#submit")   # 鼠标沿贝塞尔曲线弧线移动到按钮

异步

from invisible_playwright.async_api import InvisiblePlaywright

async with InvisiblePlaywright(proxy={"server": "socks5://...", "username": "u", "password": "p"}) as browser:
    page = await browser.new_page()
    await page.goto("https://example.com")
    await page.click("#submit")

browser 对象是 playwright.sync_api.Browser / playwright.async_api.Browser - 所有 Playwright 方法均可直接使用。

记录种子以重放运行:

sf = InvisiblePlaywright()
with sf as browser:
    print("seed =", sf.seed)
    # ...

可复现指纹

with InvisiblePlaywright(seed=42) as browser:
    ...   # 每次运行相同的 GPU、相同的 canvas 哈希、相同的音频上下文

代理

proxy = {
    "server": "socks5://gate.example.com:1080",
    "username": "user",
    "password": "pass",
}
with InvisiblePlaywright(proxy=proxy) as browser:
    ...

支持的协议:socks5socks4httphttps。DNS 默认通过代理路由,无本地泄漏。

时区

浏览器时区跟随 timezone=

# 默认:时区根据出口 IP 自动推导(若设置代理则用代理出口,否则用主机自身公网 IP)
with InvisiblePlaywright(proxy=proxy) as browser:
    ...

# 显式 IANA 时区始终优先,是强制特定时区的唯一方式
with InvisiblePlaywright(proxy=proxy, timezone="America/New_York") as browser:
    ...

固定特定指纹字段

默认情况下所有内容均来自 seed。要强制特定值而其余保持由 seed 推导:

with InvisiblePlaywright(
    seed=42,
    pin={
        "gpu.renderer": "ANGLE (NVIDIA, NVIDIA GeForce RTX 4090 Direct3D11)",
        "gpu.vendor":   "Google Inc. (NVIDIA)",
        "screen.width":  2560,
        "screen.height": 1440,
        "hardware.concurrency": 16,
    },
) as browser:
    ...

可固定键的完整列表、固定如何与贝叶斯采样器交互以及常见模式,请参阅 docs/pinning.md


CLI

安装的命令是 invisible-playwright,带连字符。python -m invisible_playwright 工作方式完全相同,且无需在 PATH 中配置。

invisible-playwright fetch    # 若缺失则下载引擎,对照封条校验每个缓存项,
                              # 打印路径
invisible-playwright version  # wrapper、核心和引擎版本,以及引擎缓存位置

文档、指南与对比

所有内容在 wiki 中阅读体验更佳且可搜索,分为四个部分而非单一平铺列表:

  • 文档 - 安装、从普通 Playwright 的两行切换、代理/时区 配置、固定特定字段、CLI。
  • 指南 - 检测 实际如何运作,分为七组:浏览器身份、canvas/WebGL/字体/ 音频、网络与 WebRTC、自动化层、AI 代理、检测器本身 的源码解析,以及测试。
  • 对比 - 与 Camoufox、Patchright、nodriver 和 playwright-stealth 的对比,以及 总体上 Firefox 优于 Chromium 的理由。
  • 集成 - Scrapy、Crawlee、Robot Framework、CodeceptJS、测试运行器、Playwright MCP,以及 按名称列出其不适配的框架。

如果不知从何入手:让 Playwright 不被检测的三种方式 是大多数其他页面回链的地图,Playwright 在某站点被检测为机器人 是故障排查顺序,navigator.webdriver 并非你想的那个破绽 解释了该领域最著名的属性以及为何仅修补它几乎 毫无用处。

相关项目

开源邻居项目,以及各自的用途。

Firefox 侧

  • Camoufox - 一款同样在 C++ 层面修补的反检测 Firefox。它覆盖更广的表面并自带指纹数据库;本项目通过贝叶斯采样器从种子推导指纹,因此一个数字即可复现一台机器。完整对比
  • LibreWolf - 带隐私默认设置的 Firefox 分支。它提供配置好的二进制供用户浏览;本项目提供源码补丁加自动化封装。
  • arkenfox/user.js - 通过偏好设置加固 Firefox。凡偏好设置足够之处就用它;本项目在偏好设置不足之处修补 C++。

Chromium 侧

选择哪个取决于你的问题所在层级,以及你需要 Firefox 还是 Chromium。让 Playwright 不被检测的三种方式 详细分析了各层能触及与不能触及的范围,包括本项目的代价。

如果你是在引擎而非工具间做选择,请注意大量 AI 代理框架通过 CDP 驱动 Chromium,这替你做了决定:AI 浏览器代理与隐身


许可证

MIT - 见 LICENSE。修补版 Firefox 二进制按 MPL-2.0(Firefox 上游许可证)分发。生成该二进制的针对 mozilla-central 的 C++ 补丁位于 feder-cr/firefox_antidetect_patch


免责声明

本项目仅供教育目的。按现状提供,不附带任何担保。我对其使用方式不承担任何责任。请自行承担风险使用,并遵守您所在司法辖区的法律。


Federico Elia 构建  LinkedIn

tests License: MIT Python 3.11+ Firefox 151.0 GitHub stars

分类