Puppeteer-Extra-Stealth jest przestarzały: czego używa nowoczesna automatyzacja — ilustrowany artykuł Clawbrowser

Puppeteer-Extra-Stealth jest przestarzały: czego używa nowoczesna automatyzacja

Clawbrowser Teamautomatyzacja-przeglądarkipuppeteerplaywrightanti-botporadnik

puppeteer-extra-plugin-stealth to najpopularniejszy pakiet Anti-Detection dla Puppeteera. Wciąż zbiera 600K+ pobrań tygodniowo na npm. Jednocześnie od marca 2023 nie wyszła ani jedna aktualizacja. Wersja 2.11.2 to ostatni release i tak już zostanie: projekt jest porzucony, issues na GitHubie piętrzą się, a systemy Anti-Bot dawno poszły dalej.

TL;DR: Pluginy Stealth patchują sygnały detekcji przez nadpisywanie JavaScriptu na poziomie strony. W 2026 roku systemy Anti-Bot takie jak Cloudflare, Akamai i DataDome sprawdzają sygnały, do których JavaScript nie ma dostępu: TLS fingerprints, artefakty protokołu CDP i różnice renderowania na poziomie silnika. Rozwiązaniem nie jest lepszy plugin. To inna warstwa: patchowany driver ukrywający wycieki protokołu albo patchowana przeglądarka obsługująca fingerprints na poziomie silnika.


Co pluginy Stealth tak naprawdę robią

puppeteer-extra-plugin-stealth zawiera 11 modułów evasion uruchamianych przez evaluateOnNewDocument. Każdy moduł patchuje jedną powierzchnię detekcji:

Moduł Co patchuje
webdriver Usuwa navigator.webdriver = true
chrome.runtime Fałszuje obiekt chrome.runtime
chrome.csi / chrome.app Dodaje brakujące stuby Chrome API
navigator.plugins Fałszuje tablicę pluginów
navigator.languages Nadpisuje ustawienia języka
navigator.permissions Poprawia zachowanie permission query
media.codecs Fałszuje wsparcie kodeków
sourceurl Ukrywa //# sourceURL z wstrzykniętych skryptów
iframe.contentWindow Poprawia detekcję cross-origin iframe
webgl.vendor Fałszuje stringi WebGL vendor/renderer
user-agent-override Ustawia realistyczny nagłówek User-Agent

Te patche działały w 2021-2022, kiedy systemy Anti-Bot sprawdzały głównie właściwości JavaScript na poziomie strony. Przeciwko temu, co faktycznie sprawdzają nowoczesne systemy detekcji, są bezużyteczne.

Dlaczego pluginy Stealth nie działają w 2026

Detekcja Anti-Bot przeniosła się poniżej warstwy JavaScript. Sygnały, które teraz mają znaczenie, to te, do których evaluateOnNewDocument nie sięga.

Wycieki protokołu CDP

Kiedy Puppeteer łączy się z Chrome, wysyła komendy CDP takie jak Runtime.enable, Page.enable i Network.enable. Te komendy zostawiają artefakty w wewnętrznym stanie przeglądarki, które skrypty Anti-Bot potrafią wykryć. Plugin Stealth nie dotyka CDP, bo działa na poziomie strony, nie na poziomie protokołu.

Sam Runtime.enable wystarczy do zidentyfikowania sesji automatycznej. Żaden page-level patching nie ukryje faktu, że wydano komendy CDP.

TLS Fingerprinting

Cloudflare sprawdza TLS fingerprints (JA3/JA4) zanim w ogóle wyśle HTML. Jeśli TLS fingerprint się nie zgadza, sesja dostaje challenge albo zostaje zablokowana — zanim JavaScript pluginu Stealth zdąży się załadować. Plugin działa na poziomie strony i nie ma dostępu do warstwy TLS. Szczegółowe wyjaśnienie, jak TLS Fingerprinting działa w stosie detekcji, znajdziesz w sekcji o warstwie sieciowej w artykule Automatyzacja przeglądarki bez blokowania.

Detekcja nadpisań JavaScript

Skrypty Anti-Bot nie sprawdzają tylko wartości navigator.webdriver. Sprawdzają property descriptor. Prawdziwa przeglądarka ma webdriver zdefiniowany jako natywny getter na prototypie Navigator. Plugin Stealth nadpisuje go przez Object.defineProperty, co zmienia flagę configurable deskryptora i wynik toString() funkcji getter. Skrypty detekcji testują dokładnie te rozbieżności.

To samo dotyczy innych nadpisań. chrome.runtime, tablice pluginów i permission queries mają wykrywalne różnice, gdy ich natywne implementacje zastąpiono stubami JavaScript.

Różnice renderowania Headless

Nawet z --headless=new (nowszym trybem headless) Chrome renderuje nieco inaczej niż w trybie headed. Metryki fontów, wyjście Canvas z akceleracją GPU i API wymiarów ekranu zwracają inne wartości. Plugin Stealth patchuje niektóre właściwości navigator, ale nie zmieni sposobu, w jaki pracuje sam silnik renderowania.


Co zastąpiło pluginy Stealth

Ekosystem podzielił się na dwa podejścia: patchowane drivery (naprawiają warstwę protokołu) i patchowane przeglądarki (naprawiają warstwę silnika). Rozwiązują różne problemy.

Patchowane drivery: Rebrowser i Patchright

Rebrowser oferuje drop-in zamienniki dla Puppeteera i Playwrighta (rebrowser-puppeteer, rebrowser-playwright). Patche celują w artefakty protokołu CDP: modyfikują interakcję Runtime.enable i innych komend z przeglądarką, by uniknąć zostawiania wykrywalnych śladów. Zamieniasz nazwę pakietu w kodzie — reszta zostaje bez zmian.

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

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

Patchright robi to samo dla Playwrighta, z naciskiem na Pythona. Patchuje wycieki Runtime.enable i jest aktywnie utrzymywany.

Ograniczenie: Patchowane drivery naprawiają protocol detection, ale nie adresują Browser Fingerprinting. Jeśli strona sprawdza Canvas, WebGL, AudioContext albo renderowanie fontów, wciąż jesteś widoczny. Patchowane drivery odpowiadają na pytanie "czy jesteś automatem?" — ale nie na "czy jesteś prawdziwym urządzeniem?"

Patchowane przeglądarki: silniki Anti-Detect

Patchowana przeglądarka modyfikuje samo Chromium tak, by sygnały fingerprint były spójne na poziomie silnika. Wyjście Canvas, renderowanie WebGL, dane AudioContext, metryki fontów, wymiary ekranu, strefa czasowa i locale raportują wartości odpowiadające jednemu realnemu profilowi urządzenia.

Dokładnie to robi Clawbrowser. To fork Chromium z patchami fingerprint na poziomie silnika obejmującymi 20+ powierzchni, wbudowanym proxy routing, ochroną przed wyciekami WebRTC i natywną obsługą CDP. Twój istniejący kod Puppeteer lub Playwright łączy się z nim po 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

Co to obsługuje w porównaniu z pluginami Stealth:

  • Spójność Canvas/WebGL/AudioContext na poziomie silnika (nie stuby JavaScript)
  • TLS fingerprint pasujący do prawdziwej sesji Chrome
  • Połączenie CDP bez artefaktów Runtime.enable
  • Ochrona przed wyciekami WebRTC na poziomie przeglądarki
  • Proxy routing z wbudowanym dopasowaniem geograficznym

Pełny przegląd sygnałów fingerprint znajdziesz w artykule Browser Fingerprinting: 20+ sygnałów używanych przez systemy Anti-Bot.


Jak wybrać odpowiednie rozwiązanie

Właściwe narzędzie zależy od tego, co cię wykrywa.

Typ detekcji Objaw Rozwiązanie
Artefakty protokołu CDP Natychmiastowa blokada przy ładowaniu strony, brak CAPTCHA Patchowany driver (Rebrowser, Patchright)
Niezgodność Browser Fingerprint CAPTCHA na każdej stronie lub ciche różnice w danych Patchowana przeglądarka (Clawbrowser)
Niezgodność TLS Fingerprint Blokada przed załadowaniem strony (403 przy pierwszym żądaniu) Patchowana przeglądarka z proxy routing
Reputacja IP Blokada z datacenter IP Residential proxy (dowolne podejście)
Detekcja behawioralna Blokada po 5-10 stronach Timing i session management w kodzie

Kiedy patchowane drivery wystarczą

Jeśli automatyzujesz strony z podstawową detekcją sprawdzającą artefakty CDP, ale nie tworzące głębokiego fingerprint przeglądarki, Rebrowser lub Patchright zadziałają. Obejmuje to wiele stron z lżejszymi konfiguracjami Anti-Bot.

Kiedy potrzebujesz patchowanej przeglądarki

Jeśli strona używa Cloudflare Bot Management, Akamai Bot Manager, DataDome lub PerimeterX, potrzebujesz spójności fingerprint na poziomie silnika. Page-level patche i driver-level patche nie wystarczą, gdy detekcja sprawdza 20+ powierzchni przeglądarki jednocześnie.

Clawbrowser to lokalny, darmowy, oparty na Chromium browser Anti-Detect z zarządzanymi fingerprintami, proxy routing, natywnym CDP i wbudowanym serwerem MCP. Obsługuje tożsamość przeglądarki i warstwę sieciową, więc twój kod zajmuje się tylko zachowaniem i session management.


Migracja z pluginów Stealth

Jeśli obecnie używasz puppeteer-extra-plugin-stealth lub playwright-stealth, migracja do Clawbrowser zajmie mniej niż pięć minut.

Przed (plugin Stealth)

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

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

Po (Clawbrowser)

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

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

Kluczowa różnica: usuwasz puppeteer-extra i puppeteer-extra-plugin-stealth z dependencies. Zero konfiguracji pluginów. Żadnego wyboru modułów evasion. Anti-detection dzieje się na poziomie przeglądarki, nie w twoim kodzie.

Wzorce specyficzne dla scrapingu (paginacja, session warming, bypass Cloudflare) znajdziesz w artykule Web Scraping bez wykrycia.


FAQ

Czy puppeteer-extra-stealth jest kompletnie bezużyteczny?

Wciąż działa na stronach bez komercyjnego systemu Anti-Bot. Jeśli docelowa strona sprawdza tylko navigator.webdriver i podstawowe właściwości JavaScript, plugin Stealth wystarczy. Ale każda strona z Cloudflare, Akamai, DataDome, PerimeterX lub media społecznościowe jak Facebook, Instagram, LinkedIn i X go wykryją.

Czy playwright-stealth ma te same problemy?

Tak. playwright-stealth stosuje to samo podejście: nadpisywanie JavaScript przez wstrzykiwanie na poziomie strony. Nie sięga do TLS fingerprints, artefaktów CDP ani renderowania na poziomie silnika. Ograniczenia detekcji są identyczne.

Czy mogę używać Rebrowser i Clawbrowser razem?

Nie musisz. Clawbrowser obsługuje zarówno warstwę protokołu, jak i warstwę fingerprint. Patche Rebrowser przydają się, gdy używasz standardowego Chrome i nie możesz przejść na przeglądarkę Anti-Detect. Z Clawbrowser artefakty CDP są już pokryte.

Dlaczego Stealth wciąż ma 600K pobrań tygodniowo?

Inercja. Większość tutoriali i odpowiedzi na Stack Overflow wciąż go poleca. Deweloperzy kopiują rozwiązania z 2022 roku, nie sprawdzając, czy pakiet jest nadal utrzymywany. Wysoka liczba pobrań nie oznacza skuteczności przeciwko nowoczesnej detekcji.


Przestań patchować, zacznij naprawiać

Pluginy Stealth były rozsądnym rozwiązaniem, gdy detekcja Anti-Bot opierała się na sprawdzaniu JavaScript. Detekcja przeniosła się na TLS fingerprints, analizę protokołu CDP i różnice renderowania na poziomie silnika. Patchowanie na poziomie strony tych sygnałów nie dosięgnie.

Zainstaluj Clawbrowser, żeby obsłużyć detekcję na poziomie przeglądarki: skopiuj prompt instalacyjny z clawbrowser.ai i wklej go do swojego agenta AI. Usuń puppeteer-extra i puppeteer-extra-plugin-stealth z dependencies. Podłącz swój istniejący kod Puppeteer lub Playwright po CDP. Anti-detection jest w przeglądarce, nie w twoim kodzie.

Model detekcji, na którym to bazuje, znajdziesz w artykule Automatyzacja przeglądarki bez blokowania: 4-warstwowy stos obrony.

Continue exploring

Ask AI how Clawbrowser helps

Czytaj dalej

Zobacz wszystkie →