Puppeteer-Extra-Stealth устарел: что используют вместо него в 2026 — иллюстрация к статье Clawbrowser

Puppeteer-Extra-Stealth устарел: что используют вместо него в 2026

Clawbrowser Teamавтоматизация-браузераpuppeteerplaywrightanti-botруководство

puppeteer-extra-plugin-stealth — самый популярный Anti-Detection пакет для Puppeteer. Он до сих пор собирает 600K+ загрузок в неделю на npm. При этом с марта 2023 года не вышло ни одного обновления. Версия 2.11.2 — последний релиз, и ситуация не изменится: поддержка прекращена, issues на GitHub копятся, а Anti-Bot системы давно ушли вперёд.

TL;DR: Stealth-плагины патчат сигналы детекции через JavaScript-override на уровне страницы. В 2026 году Anti-Bot системы вроде Cloudflare, Akamai и DataDome проверяют сигналы, до которых JavaScript не дотягивается: TLS fingerprints, артефакты протокола CDP и различия рендеринга на уровне движка. Решение — не лучший плагин. Это другой слой: пропатченный драйвер, скрывающий утечки протокола, или пропатченный браузер, обрабатывающий fingerprints на уровне движка.


Что Stealth-плагины на самом деле делают

puppeteer-extra-plugin-stealth включает 11 evasion-модулей, запускаемых через evaluateOnNewDocument. Каждый модуль патчит одну поверхность детекции:

Модуль Что патчит
webdriver Удаляет navigator.webdriver = true
chrome.runtime Подделывает объект chrome.runtime
chrome.csi / chrome.app Добавляет отсутствующие стабы Chrome API
navigator.plugins Подделывает массив плагинов
navigator.languages Переопределяет языковые настройки
navigator.permissions Исправляет поведение permission query
media.codecs Подделывает поддержку кодеков
sourceurl Скрывает //# sourceURL из инжектированных скриптов
iframe.contentWindow Исправляет детекцию cross-origin iframe
webgl.vendor Подделывает строки WebGL vendor/renderer
user-agent-override Устанавливает реалистичный заголовок User-Agent

Эти патчи работали в 2021-2022, когда Anti-Bot системы проверяли в основном свойства JavaScript на уровне страницы. Против того, что проверяют современные системы детекции, они бессильны.

Почему Stealth-плагины не работают в 2026

Anti-Bot детекция ушла ниже слоя JavaScript. Сигналы, которые сейчас решают всё — те, до которых evaluateOnNewDocument не дотягивается.

Утечки протокола CDP

Когда Puppeteer подключается к Chrome, он отправляет CDP-команды вроде Runtime.enable, Page.enable и Network.enable. Эти команды оставляют артефакты во внутреннем состоянии браузера, которые Anti-Bot скрипты умеют обнаруживать. Stealth-плагин не трогает CDP, потому что работает на уровне страницы, а не на уровне протокола.

Одной команды Runtime.enable достаточно для идентификации автоматизированной сессии. Никакой page-level patching не скроет факт отправки CDP-команд.

TLS Fingerprinting

Cloudflare проверяет TLS fingerprints (JA3/JA4) до того, как отдаст любой HTML. Если TLS fingerprint не совпадает, сессия получает challenge или блокируется — ещё до того, как JavaScript-патчи Stealth-плагина успеют загрузиться. Плагин работает на уровне страницы и не имеет доступа к TLS-слою. Подробное объяснение работы TLS Fingerprinting в стеке детекции смотрите в разделе о сетевом слое статьи Автоматизация браузера без блокировок.

Детекция JavaScript-override

Anti-Bot скрипты проверяют не только значение navigator.webdriver. Они проверяют property descriptor. В настоящем браузере webdriver определён как native getter на прототипе Navigator. Stealth-плагин переопределяет его через Object.defineProperty, что меняет флаг configurable дескриптора и вывод toString() getter-функции. Скрипты детекции тестируют именно эти расхождения.

То же касается других override. chrome.runtime, массивы плагинов и permission queries имеют обнаруживаемые отличия, когда их нативные реализации заменены JavaScript-стабами.

Различия рендеринга в Headless

Даже с --headless=new (новым headless-режимом) Chrome рендерит немного иначе, чем в headed-режиме. Метрики шрифтов, GPU-ускоренный вывод Canvas и API размеров экрана возвращают другие значения. Stealth-плагин патчит некоторые свойства navigator, но не может изменить то, как работает сам движок рендеринга.


Что пришло на смену Stealth-плагинам

Экосистема разделилась на два подхода: пропатченные драйверы (исправляют слой протокола) и пропатченные браузеры (исправляют слой движка). Они решают разные задачи.

Пропатченные драйверы: Rebrowser и Patchright

Rebrowser предлагает drop-in замену для Puppeteer и Playwright (rebrowser-puppeteer, rebrowser-playwright). Патчи нацелены на артефакты протокола CDP: они меняют взаимодействие Runtime.enable и других команд с браузером, чтобы не оставлять обнаруживаемых следов. Вы заменяете имя пакета в коде — всё остальное остаётся без изменений.

// Before: detected
const puppeteer = require('puppeteer');

// After: CDP artifacts patched
const puppeteer = require('rebrowser-puppeteer');

Patchright делает то же самое для Playwright с фокусом на Python. Патчит утечки Runtime.enable и активно поддерживается.

Ограничение: Пропатченные драйверы решают проблему protocol detection, но не затрагивают Browser Fingerprinting. Если сайт проверяет Canvas, WebGL, AudioContext или рендеринг шрифтов — вы всё ещё видны. Пропатченные драйверы отвечают на вопрос «ты автоматизирован?», но не на «ты настоящее устройство?»

Пропатченные браузеры: Anti-Detect движки

Пропатченный браузер модифицирует сам Chromium, чтобы сигналы fingerprint были когерентными на уровне движка. Вывод Canvas, рендеринг WebGL, данные AudioContext, метрики шрифтов, размеры экрана, часовой пояс и locale сообщают значения, соответствующие одному реальному профилю устройства.

Именно это делает Clawbrowser. Это форк Chromium с патчами fingerprint на уровне движка по 20+ поверхностям, встроенной маршрутизацией прокси, защитой от утечек WebRTC и нативной поддержкой CDP. Ваш существующий код на Puppeteer или Playwright подключается к нему по CDP:

from playwright.async_api import async_playwright

async def automate_without_detection():
    async with async_playwright() as p:
        # Connect to Clawbrowser instead of stock Chrome

Что это покрывает в сравнении со Stealth-плагинами:

  • Когерентность Canvas/WebGL/AudioContext на уровне движка (не JavaScript-стабы)
  • TLS fingerprint, совпадающий с реальной сессией Chrome
  • CDP-соединение без артефактов Runtime.enable
  • Защита от утечек WebRTC на уровне браузера
  • Маршрутизация прокси со встроенной географической привязкой

Полный разбор сигналов fingerprint смотрите в статье Browser Fingerprinting: 20+ сигналов, которые Anti-Bot системы используют для детекции.


Как выбрать подходящий инструмент

Правильный инструмент зависит от того, что именно вас детектит.

Тип детекции Симптом Решение
Артефакты протокола CDP Мгновенная блокировка при загрузке страницы, без CAPTCHA Пропатченный драйвер (Rebrowser, Patchright)
Несовпадение Browser Fingerprint CAPTCHA на каждой странице или тихие расхождения в данных Пропатченный браузер (Clawbrowser)
Несовпадение TLS Fingerprint Блокировка до загрузки страницы (403 на первом запросе) Пропатченный браузер с маршрутизацией прокси
Репутация IP Блокировка с datacenter IP Residential proxy (любой подход)
Поведенческая детекция Блокировка после 5-10 страниц Тайминг и session management в коде

Когда пропатченных драйверов достаточно

Если вы автоматизируете сайты с базовой детекцией, которая проверяет артефакты CDP, но не строит глубокий fingerprint браузера, Rebrowser или Patchright справятся. Это покрывает множество сайтов с лёгкими конфигурациями Anti-Bot.

Когда нужен пропатченный браузер

Если сайт использует Cloudflare Bot Management, Akamai Bot Manager, DataDome или PerimeterX, нужна когерентность fingerprint на уровне движка. Page-level патчи и driver-level патчи не спасут, когда детекция проверяет 20+ поверхностей браузера одновременно.

Clawbrowser — локальный, бесплатный, основанный на Chromium Anti-Detect браузер с управляемыми fingerprints, маршрутизацией прокси, нативным CDP и встроенным MCP-сервером. Он берёт на себя идентичность браузера и сетевой слой, а ваш код занимается только поведением и session management.


Миграция со Stealth-плагинов

Если вы сейчас используете puppeteer-extra-plugin-stealth или playwright-stealth, миграция на Clawbrowser займёт меньше пяти минут.

До (Stealth-плагин)

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());

const browser = await puppeteer.launch({ headless: false });

После (Clawbrowser)

const puppeteer = require('puppeteer-core');

// Connect to Clawbrowser over CDP
const browser = await puppeteer.connect({
    browserWSEndpoint: 'ws://127.0.0.1:9222'

Ключевое отличие: вы полностью удаляете puppeteer-extra и puppeteer-extra-plugin-stealth из зависимостей. Никакой конфигурации плагинов. Никакого выбора evasion-модулей. Anti-detection происходит на уровне браузера, а не в вашем коде.

Паттерны, специфичные для скрейпинга (пагинация, прогрев сессий, обход Cloudflare), смотрите в статье Веб-скрейпинг без обнаружения.


FAQ

puppeteer-extra-stealth совсем бесполезен?

Он всё ещё работает на сайтах без коммерческой Anti-Bot системы. Если целевой сайт проверяет только navigator.webdriver и базовые свойства JavaScript, Stealth-плагина достаточно. Но любой сайт с Cloudflare, Akamai, DataDome, PerimeterX или соцсети вроде Facebook, Instagram, LinkedIn и X его обнаружат.

У playwright-stealth те же проблемы?

Да. playwright-stealth использует тот же подход: JavaScript-override через инжекцию на уровне страницы. Он не дотягивается до TLS fingerprints, артефактов CDP и рендеринга на уровне движка. Ограничения детекции идентичны.

Можно ли использовать Rebrowser и Clawbrowser вместе?

Не нужно. Clawbrowser закрывает и слой протокола, и слой fingerprint. Патчи Rebrowser полезны, когда вы работаете со стандартным Chrome и не можете перейти на Anti-Detect браузер. С Clawbrowser артефакты CDP уже обработаны.

Почему у Stealth всё ещё 600K загрузок в неделю?

Инерция. Большинство туториалов и ответов на Stack Overflow по-прежнему его рекомендуют. Разработчики копируют решения из 2022 года, не проверяя, поддерживается ли пакет. Высокое число загрузок не означает эффективность против современной детекции.


Хватит патчить — пора решать

Stealth-плагины были разумным решением, когда Anti-Bot детекция опиралась на проверки на уровне JavaScript. Детекция переместилась на TLS fingerprints, анализ протокола CDP и различия рендеринга на уровне движка. Патчинг на уровне страницы до этих сигналов не дотягивается.

Установите Clawbrowser, чтобы решить вопрос детекции на уровне браузера: скопируйте промпт установки с clawbrowser.ai и вставьте его в вашего AI-агента. Удалите puppeteer-extra и puppeteer-extra-plugin-stealth из зависимостей. Подключите существующий код на Puppeteer или Playwright по CDP. Anti-detection — в браузере, а не в вашем коде.

Модель детекции, лежащую в основе, смотрите в статье Автоматизация браузера без блокировок: 4-слойный стек защиты.

Continue exploring

Ask AI how Clawbrowser helps

Читайте дальше

Все статьи →