Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
invisible_playwright — Playwright, невидимый для антиботов, поэтому без капчи: тот же API, антидетект-стелс headless Firefox, необнаружимый отпечаток, обход обнаружения ботов, веб-скрейпинг и автоматизация браузера на Python. | Kitploit
Инструменты/GitHubGitHub/feder-cr/invisible_playwright
Обход IDS/IPSИнструменты для выдачи себя за другое лицоВеб-безопасностьАнти-БотПодмена Цифрового ОтпечаткаОбход CAPTCHA
GitHubfeder-cr/invisible_playwright

invisible_playwright

Playwright, невидимый для антиботов, поэтому без капчи: тот же API, антидетект-стелс headless Firefox, необнаружимый отпечаток, обход обнаружения ботов, веб-скрейпинг и автоматизация браузера на Python.

Репозиторий
1.8k2013072 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
<div align="center">
<picture>
  <source media="(max-width: 374px) and (prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-small-dark.gif">
  <source media="(max-width: 374px)" srcset="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-small-light.gif">
  <source media="(max-width: 1239px) and (prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-phone-dark.gif">
  <source media="(max-width: 1239px)" srcset="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-phone-light.gif">
  <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-dark.gif">
  <img alt="invisible_playwright, Playwright на антидетект-сборке Firefox. Анимация: переключение в две строки от Playwright, отпечаток, заданный внутри движка, мышь, которая движется как рука, и бот-тесты, которые он проходит." src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-light.gif" width="100%">
</picture>
<h3 align="center">Playwright ловится антиботами и капчами.<br>
Этот работает на антидетект-сборке Firefox с недетектируемым отпечатком и совместим с вашим существующим кодом Playwright.</h3>
</div>

![invisible_playwright - пройдено 5/5 наборов тестов на детекцию](https://assets.kitploit.com/production/public/readmes/7462/e23d5b9ad68fbaf1e80c3e7f70118a4e135514dc069f0b6d27076f6af3e23051.gif)

## Как это работает

Антиботы задают два вопроса, и reCAPTCHA, hCaptcha и Cloudflare Turnstile оценивают ответы. invisible_playwright отвечает «да» на оба.

**1. Это настоящий браузер?** Да. Это Firefox, пропатченный на уровне исходного кода C++.

- Отпечаток браузера задаётся внутри движка, а не внедряется в страницу: navigator, screen, GPU/WebGL, canvas, шрифты, audio, WebRTC, часовой пояс, сеть. В headless- или headed-режиме значения одинаковы.
- Никакого JS-шимма, никаких переопределений, никакого шва, за который можно зацепиться.

**2. Им пользуется реальный человек?** Да. Действия очеловечены в драйвере.

- Каждый клик, наведение и перетаскивание следует естественной траектории мыши с человеческим таймингом, без телепортации курсора.
- Каждый ввод побайтово идентичен реальной мыши: настоящий источник ввода, давление, доверенные события.

---

## Установка

Windows, в PowerShell:

```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
$env:Path = "$env:USERPROFILE\.local\bin;$env:Path"
uv init --python ">=3.11" my-project
cd my-project
uv add invisible-playwright
uv run invisible-playwright fetch      # one-time download, sha256-verified: 240 MB, about 550 MB unpacked
```

Linux:

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
uv init --python ">=3.11" my-project
cd my-project
uv add invisible-playwright
uv run invisible-playwright fetch      # one-time download, sha256-verified: 262 MB (x86_64) / 253 MB (arm64), about 550 MB unpacked
```

Поддерживаемые платформы: **Windows x86_64**, **Linux x86_64 / arm64**.

Затем сохраните один из примеров ниже как `main.py` в `my-project` и запустите его с помощью `uv run main.py`.

---

## Использование
### Случайный отпечаток для каждой сессии
**API Playwright, синхронный и асинхронный, без изменений в коде.** Те же объекты, те же вызовы, те же возвращаемые значения. Несколько поверхностей выходят за рамки — трассировка, HAR, CDP, контекст API-запросов — и каждая из них отказывает с предложением, объясняющим причину, вместо того чтобы тихо работать неправильно. Если вы уже используете Playwright, переключение занимает две строки:

```diff
- 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 полей) и движение мыши по кривым Безье.

**Синхронизация**
```python
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")   # mouse arcs to the button on a Bezier curve
```

**Асинхронный**
```python
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 работает как есть.

Логируйте seed для воспроизведения запуска:

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

### Воспроизводимый отпечаток

```python
with InvisiblePlaywright(seed=42) as browser:
    ...   # same GPU, same canvas hash, same audio context, every run
```

### Прокси

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

Поддерживаемые схемы: `socks5`, `socks4`, `http`, `https`. DNS по умолчанию маршрутизируется через прокси, без локальной утечки.

### Часовой пояс

Часовой пояс браузера соответствует `timezone=`:

```python
# default: timezone is auto-derived from the egress IP (proxy egress if a
# proxy is set, otherwise the host's own public IP)
with InvisiblePlaywright(proxy=proxy) as browser:
    ...

# explicit IANA zone always wins, the only way to force a specific zone
with InvisiblePlaywright(proxy=proxy, timezone="America/New_York") as browser:
    ...
```

### Закрепление конкретных полей отпечатка

По умолчанию всё берётся из `seed`. Чтобы принудительно задать конкретные значения, пока остальные остаются производными от seed:

```python
with InvisiblePlaywright(
    seed=42,
    pin={
        "gpu.renderer": "ANGLE (AMD, Radeon R9 200 Series Direct3D11 vs_5_0 ps_5_0, D3D11)",
        "gpu.vendor":   "Google Inc. (AMD)",
        "screen.width":  2560,
        "screen.height": 1440,
        "hardware.concurrency": 16,
    },
) as browser:
    ...
```

GPU-пин выбирает одну из валидированных персон, а не задаёт произвольную строку,
поскольку ~81 значение `getParameter` и список расширений идут вместе с
именем рендерера, и детектор сверяет их с ним. Имя, которого нет в пуле,
вызывает ошибку, и в ошибке перечислены те, что есть.

Полный список закрепляемых ключей, как пиннинг взаимодействует с байесовским сэмплером, и типовые шаблоны — в **[docs/pinning.md](https://github.com/feder-cr/invisible_playwright/blob/main/docs/pinning.md)**.

---

## CLI

Установленная команда — `invisible-playwright`, через дефис. `python -m
invisible_playwright` работает идентично и не требует ничего в PATH.

```bash
invisible-playwright fetch    # download the engine if missing, check every cached
                              # one against the seal, print the path
invisible-playwright version  # wrapper, core and engine versions, and where the
                              # engine is cached
```

## Документация, руководства и сравнения

**Если вы предпочитаете промпты, а не скрипты.** Эта страница — движок в виде библиотеки Python.
Два способа использовать его без написания кода, оба в одну строку: из MCP-клиента,
который у вас уже есть (Claude Code, Claude Desktop, Cursor),
`claude mcp add stealth -- uvx aihawk`, см.
[страницу MCP-сервера](https://github.com/feder-cr/AIHawk/wiki/mcp-server); или с
интерфейсом и включённой моделью, требующим только ключа OpenRouter,
`uvx aihawk ui --openrouter-key sk-or-...`, см.
[AIHawk](https://github.com/feder-cr/AIHawk). В основе — тот же движок, а второй
является клиентом первого.

Всё это лучше читается и доступно для поиска в
**[вики](https://github.com/feder-cr/invisible_playwright/wiki)**,
организованной в четыре раздела вместо одного плоского списка:

- **[Документация](https://github.com/feder-cr/invisible_playwright/blob/main/docs/documentation.md)** -
  установка, переключение в две строки с обычного Playwright, настройка
  прокси/часового пояса, закрепление конкретных полей, CLI.
- **[Руководства](https://github.com/feder-cr/invisible_playwright/blob/main/docs/guides.md)** - как
  на самом деле работает обнаружение, в семи группах: идентичность браузера, canvas/WebGL/шрифты/
  аудио, сеть и WebRTC, слой автоматизации, ИИ-агенты, сами детекторы,
  объяснённые по исходному коду, и тестирование.
- **[Сравнения](https://github.com/feder-cr/invisible_playwright/blob/main/docs/comparisons.md)** -
  с Camoufox, Patchright, nodriver и playwright-stealth, а также аргументы в пользу
  Firefox вместо Chromium в целом.
- **[Интеграции](https://github.com/feder-cr/invisible_playwright/blob/main/docs/integrations)** -
  Scrapy, Crawlee, Robot Framework, CodeceptJS, тест-раннеры, Playwright MCP и
  фреймворки, которым он не подходит, по названиям.

Если не знаете, с чего начать: [Три способа сделать Playwright необнаружимым](https://github.com/feder-cr/invisible_playwright/blob/main/docs/playwright-stealth-levels.md)
— это карта, на которую ссылается большинство других страниц, [Playwright обнаружен как бот на одном сайте](https://github.com/feder-cr/invisible_playwright/blob/main/docs/playwright-detected-as-bot.md)
— это порядок устранения неполадок, а [navigator.webdriver — не та улика, о которой вы думаете](https://github.com/feder-cr/invisible_playwright/blob/main/docs/navigator-webdriver-explained.md)
объясняет самое известное свойство в этой области и почему его исправление в одиночку почти ничего не даёт.

Раздел о детекторах теперь охватывает коммерческие антибот-продукты по названиям, каждый
описан по собственной документации или по подтверждённому обратному инжинирингу:
[Cloudflare Bot Management](https://github.com/feder-cr/invisible_playwright/blob/main/docs/cloudflare-bot-management-explained.md) и
[Turnstile](https://github.com/feder-cr/invisible_playwright/blob/main/docs/cloudflare-turnstile-explained.md),
[DataDome](https://github.com/feder-cr/invisible_playwright/blob/main/docs/datadome-explained.md), [Kasada](https://github.com/feder-cr/invisible_playwright/blob/main/docs/kasada-explained.md),
[Akamai Bot Manager](https://github.com/feder-cr/invisible_playwright/blob/main/docs/akamai-bot-manager-explained.md),
[PerimeterX](https://github.com/feder-cr/invisible_playwright/blob/main/docs/perimeterx-explained.md), [hCaptcha](https://github.com/feder-cr/invisible_playwright/blob/main/docs/hcaptcha-explained.md),
[Imperva](https://github.com/feder-cr/invisible_playwright/blob/main/docs/imperva-incapsula-explained.md) и
[остальные из набора](https://github.com/feder-cr/invisible_playwright/blob/main/docs/guides-detectors-explained.md).

## Связанные проекты

**Другие части этого проекта.** Движок — средний из трёх, и
два вокруг него — это то, как большинство людей до него добираются:

- **[invisible_core](https://github.com/feder-cr/invisible_core)** - от seed к
  отпечатку к предпочтениям, плюс прокси и геолокация. Этот пакет закрепляет его.
- **[AIHawk](https://github.com/feder-cr/AIHawk)** - этот движок как MCP-
  сервер (`uvx aihawk`, для любого клиента, который приносит свою
  модель) и, в том же пакете, интерфейс с включённой моделью, запускаемый
  одной командой. Интерфейс является клиентом сервера, без приватного пути
  к браузеру.

**Соседи с открытым исходным кодом.** Какой из них подходит, зависит от слоя, на котором
находится ваша проблема, и от того, нужен ли вам Firefox или Chromium:
[три способа сделать Playwright необнаружимым](https://github.com/feder-cr/invisible_playwright/blob/main/docs/playwright-stealth-levels.md) разбирает,
до чего может добраться каждый слой, а [ИИ-браузерные агенты и стелс](https://github.com/feder-cr/invisible_playwright/blob/main/docs/ai-browser-agents-stealth.md)
охватывает фреймворки, которые выбирают Chromium вместо CDP за вас.

**Со стороны Firefox**

- **[Camoufox](https://github.com/daijro/camoufox)** — также патчит C++, шире охват, поставляется с базой отпечатков вместо их вывода из seed. [Сравнение](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-camoufox.md).
- **[LibreWolf](https://librewolf.net)** — Firefox с приватными настройками по умолчанию для просмотра, а не для автоматизации.
- **[arkenfox/user.js](https://github.com/arkenfox/user.js)** — усиление защиты через настройки. Где достаточно настройки, используйте её.

**На стороне Chromium**

- **[Patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright)** — пропатченный форк Playwright: изменения вносятся в драйвер, а не в бинарник. [Сравнение](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-patchright.md).
- **[nodriver](https://github.com/ultrafunkamsterdam/nodriver)** — преемник `undetected-chromedriver`, управляющий Chrome через CDP. [Сравнение](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-nodriver.md).
- **[rebrowser-patches](https://github.com/rebrowser/rebrowser-patches)** — исправляет утечку `Runtime.enable` в CDP. [Сравнение](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-rebrowser-patches.md).
- **[fingerprint-suite](https://github.com/apify/fingerprint-suite)** — байесовский генератор отпечатков, который затем внедряется в страницу. [Сравнение](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-fingerprint-suite.md).
- **[playwright-with-fingerprints](https://github.com/bablosoft/playwright-with-fingerprints)** — значения из платного удалённого сервиса, только для Windows. [Сравнение](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-playwright-with-fingerprints.md).
- **[playwright-stealth](https://github.com/Mattwmaster58/playwright_stealth)** — патч через init-скрипт; его сопровождающий называет его proof-of-concept. [Сравнение](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-playwright-stealth.md).
- **[puppeteer-extra-plugin-stealth](https://github.com/berstend/puppeteer-extra)** — родоначальник этой линии, последний содержательный коммит — середина 2024 года. [Что это значит](https://github.com/feder-cr/invisible_playwright/blob/main/docs/puppeteer-extra-stealth-unmaintained.md).
- **[selenium-stealth](https://github.com/diprajpatra/selenium-stealth)** — тот же подход на Selenium, последний коммит — декабрь 2021 года. [Что это значит](https://github.com/feder-cr/invisible_playwright/blob/main/docs/selenium-stealth-unmaintained.md).
- **[pyppeteer](https://github.com/pyppeteer/pyppeteer)** — не поддерживается согласно его собственному README, который указывает на `playwright-python`. [О чём эта рекомендация](https://github.com/feder-cr/invisible_playwright/blob/main/docs/pyppeteer-unmaintained-playwright.md).

---

## Что патчится в движке

Два правила действуют для всего перечисленного ниже. Каждое значение определяется **до того, как страница сможет его запросить**, внутри браузера, поэтому нет JavaScript-прослойки, которую можно обнаружить. И каждое значение берётся из **одного профиля**, поэтому никакие две поверхности не противоречат друг другу — а именно так обычно и ловят поддельный браузер. Источник:
[feder-cr/firefox_antidetect_patch](https://github.com/feder-cr/firefox_antidetect_patch).

**Идентичность**
- `navigator`, user agent и client hints выводятся вместе, поэтому не могут расходиться: [устанавливает ли Playwright navigator.webdriver](https://github.com/feder-cr/invisible_playwright/blob/main/docs/does-playwright-set-navigator-webdriver.md), [client hints и Sec-Fetch](https://github.com/feder-cr/invisible_playwright/blob/main/docs/client-hints-sec-fetch.md).
- `navigator.languages` и заголовок `Accept-Language` — это одно и то же объявление, отправляемое и читаемое: [Accept-Language и navigator.languages](https://github.com/feder-cr/invisible_playwright/blob/main/docs/accept-language-navigator-languages.md).
- Геометрия экрана, `devicePixelRatio` и медиазапросы, раскрывающие его, объявляются, а не считываются с хоста: [devicePixelRatio и настройка Firefox](https://github.com/feder-cr/invisible_playwright/blob/main/docs/devicepixelratio-firefox-pref.md), [фингерпринтинг через CSS media queries](https://github.com/feder-cr/invisible_playwright/blob/main/docs/css-media-query-fingerprinting.md).

**Рендеринг**
- Чтение Canvas детерминировано для каждого seed и сохраняет реальную форму, а не блокируется или зашумляется: [шум отпечатка canvas](https://github.com/feder-cr/invisible_playwright/blob/main/docs/canvas-fingerprint-noise.md), [почему отпечаток canvas меняется при каждом запуске](https://github.com/feder-cr/invisible_playwright/blob/main/docs/canvas-fingerprint-changes-every-run.md).
- WebGL сообщает согласованную GPU-персону: производитель, рендерер и лимиты параметров перекрёстно проверяются, а не задаются по отдельности: [строки рендерера WebGL](https://github.com/feder-cr/invisible_playwright/blob/main/docs/webgl-renderer-strings.md), [параметры WebGL идентичны](https://github.com/feder-cr/invisible_playwright/blob/main/docs/webgl-parameters-are-identical.md).
- Шрифты поставляются вместе с браузером, поэтому одни и те же начертания существуют на каждом хосте, и платформенный шрифтовой движок больше не выбирает: [встроенные шрифты на разных платформах](https://github.com/feder-cr/invisible_playwright/blob/main/docs/bundled-fonts-cross-platform.md), [почему headless-браузеры рендерят разные шрифты](https://github.com/feder-cr/invisible_playwright/blob/main/docs/headless-fonts-differ.md), [обнаружение установленных шрифтов из JavaScript](https://github.com/feder-cr/invisible_playwright/blob/main/docs/detect-installed-fonts-javascript.md).
- Метрики текста соответствуют этим шрифтам: `measureText` возвращает более десяти чисел за один вызов, без запроса разрешения: [measureText и TextMetrics](https://github.com/feder-cr/invisible_playwright/blob/main/docs/measuretext-textmetrics-fingerprinting.md).
- Canvas и WebGL согласуются между операционными системами для одного и того же seed: [кросс-платформенная согласованность](https://github.com/feder-cr/invisible_playwright/blob/main/docs/canvas-webgl-cross-platform-consistency.md), [canvas различается между операционными системами](https://github.com/feder-cr/invisible_playwright/blob/main/docs/canvas-differs-across-operating-systems.md).

**Аудио и медиа**
- Аудиостек отвечает из профиля, а не из устройства хоста: [отпечаток AudioContext](https://github.com/feder-cr/invisible_playwright/blob/main/docs/audiocontext-fingerprinting.md), [частота дискретизации и задержка](https://github.com/feder-cr/invisible_playwright/blob/main/docs/audiocontext-samplerate-latency-fingerprint.md).
- Таблица кодеков объявлена, поэтому Linux-хост не отвечает на вопрос Windows поддержкой Linux: [отпечаток кодеков](https://github.com/feder-cr/invisible_playwright/blob/main/docs/codec-fingerprinting.md).

**Сеть**
- WebRTC предлагает один синтетический кандидат, несущий выход прокси, вместо утечки реального адреса или отсутствия кандидатов, что само по себе является признаком: [подмена ICE-кандидатов WebRTC](https://github.com/feder-cr/invisible_playwright/blob/main/docs/webrtc-ice-candidate-spoofing.md), [совпадает ли IP WebRTC с выходом прокси](https://github.com/feder-cr/invisible_playwright/blob/main/docs/webrtc-ip-match-proxy-exit.md).
- DNS разрешается через прокси, в том числе когда прокси отсутствует в настройках: [утекает ли прокси DNS](https://github.com/feder-cr/invisible_playwright/blob/main/docs/does-a-proxy-leak-dns-doh-explained.md), [как проверить утечку IP прокси](https://github.com/feder-cr/invisible_playwright/blob/main/docs/how-to-check-proxy-ip-leak.md).
- Часовой пояс берётся из IP выхода, разрешённого офлайн, поэтому он совпадает с выходом: [несовпадение часового пояса и прокси](https://github.com/feder-cr/invisible_playwright/blob/main/docs/timezone-proxy-mismatch.md), [офлайн GeoIP часовой пояс](https://github.com/feder-cr/invisible_playwright/blob/main/docs/offline-geoip-timezone-proxy.md).

**Слой автоматизации**
- События ввода поступают из реального пути ввода, поэтому `isTrusted` истинно, потому что это действительно так: [клики Playwright и isTrusted](https://github.com/feder-cr/invisible_playwright/blob/main/docs/playwright-clicks-istrusted.md).
- Указатель следует по человеческой траектории и с человеческим таймингом, в темпе, который могло бы обеспечить реальное устройство: [человеческое движение мыши](https://github.com/feder-cr/invisible_playwright/blob/main/docs/human-mouse-movement.md), [динамика мыши как поведенческая биометрия](https://github.com/feder-cr/invisible_playwright/blob/main/docs/mouse-dynamics-behavioural-biometrics.md).
- Поверхность отладчика не отвечает на вопросы о таймингах, которые выдают управляемый браузер: [обнаружение таймингов отладчика](https://github.com/feder-cr/invisible_playwright/blob/main/docs/debugger-timing-detection.md).
- Теневые корни в закрытом режиме доступны, чего стандартный Playwright не может сделать ни в одном движке, при этом страница по-прежнему читает `null`: [закрытые теневые корни](https://github.com/feder-cr/invisible_playwright/blob/main/docs/closed-shadow-root-playwright.md).

---

## Лицензия

MIT — см. [LICENSE](https://github.com/feder-cr/invisible_playwright/blob/main/LICENSE). Пропатченный бинарник Firefox распространяется под лицензией MPL-2.0 (лицензия исходного проекта Firefox). Патчи на C++ против mozilla-central, которые создают этот бинарник, находятся в [feder-cr/firefox_antidetect_patch](https://github.com/feder-cr/firefox_antidetect_patch).

---

## Отказ от ответственности

Этот проект предназначен исключительно для образовательных целей. Он предоставляется как есть, без каких-либо гарантий. Я не несу ответственности за то, как он используется. Используйте его на свой страх и риск и в соответствии с законами вашей юрисдикции.

---

<p align="center">
  Создано <a href="https://it.linkedin.com/in/federico-elia-5199951b6">Federico Elia</a>
  &nbsp;<a href="https://it.linkedin.com/in/federico-elia-5199951b6"><img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/badges/linkedin.svg" alt="LinkedIn"></a>
</p>

<p align="center">
  <a href="https://github.com/feder-cr/invisible_playwright/actions/workflows/tests.yml"><img src="https://github.com/feder-cr/invisible_playwright/actions/workflows/tests.yml/badge.svg" alt="tests"></a>
  <a href="https://github.com/feder-cr/invisible_playwright/blob/main/LICENSE"><img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/badges/license.svg" alt="License: MIT"></a>
  <a href="https://www.python.org/downloads/"><img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/badges/python.svg" alt="Python 3.11+"></a>
  <a href="https://github.com/feder-cr/firefox_antidetect_patch/releases"><img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/badges/firefox.svg" alt="Firefox 151.0"></a>
  <img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/badges/docs/badges/launches.svg" alt="browser launches">
  <a href="https://github.com/feder-cr/invisible_playwright/stargazers"><img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/badges/docs/badges/stars.svg" alt="GitHub stars"></a>
</p>
Скачать инструмент