puppeteer-extra-plugin-stealth é o pacote anti-detecção mais popular para Puppeteer. Ainda registra mais de 600K downloads semanais no npm. Também não recebe uma atualização desde março de 2023. A versão 2.11.2 é a última release e vai continuar assim: a manutenção está inativa, as issues no GitHub se acumulam e os sistemas anti-bot seguiram em frente.
TL;DR: Plugins stealth corrigem sinais de detecção com overrides JavaScript no nível da página. Em 2026, sistemas anti-bot como Cloudflare, Akamai e DataDome verificam sinais que JavaScript não consegue alcançar: impressões digitais TLS, artefatos do protocolo CDP e diferenças de renderização no nível do motor. A solução não é um plugin melhor. É uma camada diferente: um driver patcheado que esconde os vazamentos do protocolo ou um navegador patcheado que gerencia as impressões digitais no nível do motor.
O que os plugins stealth realmente fazem
puppeteer-extra-plugin-stealth agrupa 11 módulos de evasão executados via evaluateOnNewDocument. Cada módulo corrige uma superfície de detecção:
| Módulo | O que corrige |
|---|---|
webdriver |
Removes navigator.webdriver = true |
chrome.runtime |
Fakes the chrome.runtime object |
chrome.csi / chrome.app |
Adds missing Chrome API stubs |
navigator.plugins |
Spoofs the plugin array |
navigator.languages |
Overrides language settings |
navigator.permissions |
Fixes permission query behavior |
media.codecs |
Spoofs codec support |
sourceurl |
Hides //# sourceURL from injected scripts |
iframe.contentWindow |
Fixes cross-origin iframe detection |
webgl.vendor |
Spoofs WebGL vendor/renderer strings |
user-agent-override |
Sets a realistic User-Agent header |
Essas correções funcionavam em 2021-2022, quando os sistemas anti-bot verificavam principalmente propriedades JavaScript no nível da página. Não funcionam contra o que os sistemas de detecção modernos realmente verificam.
Por que os plugins stealth falham em 2026
A detecção anti-bot desceu abaixo da camada JavaScript. Os sinais relevantes agora são aqueles que evaluateOnNewDocument não consegue alcançar.
Vazamentos do protocolo CDP
Quando o Puppeteer se conecta ao Chrome, ele envia comandos CDP como Runtime.enable, Page.enable e Network.enable. Esses comandos deixam artefatos no estado interno do navegador que scripts anti-bot conseguem detectar. O plugin stealth não toca no CDP porque opera no nível da página, não no nível do protocolo.
O comando Runtime.enable sozinho já basta para identificar uma sessão automatizada. Nenhuma correção no nível da página esconde o fato de que comandos CDP foram emitidos.
Impressão digital TLS
O Cloudflare verifica impressões digitais TLS (JA3/JA4) antes de servir qualquer HTML. Se a impressão digital TLS estiver errada, sua sessão recebe um challenge ou bloqueio antes mesmo dos patches JavaScript do plugin stealth serem carregados. O plugin opera no nível da página e não tem acesso à camada TLS. Para uma explicação completa de como a impressão digital TLS funciona na pilha de detecção, consulte a seção de camada de rede em Automação de navegador sem bloqueios.
Detecção de overrides JavaScript
Scripts anti-bot não verificam apenas o valor de navigator.webdriver. Eles verificam o property descriptor. Um navegador real tem webdriver definido como um getter nativo no protótipo Navigator. O plugin stealth sobrescreve isso com Object.defineProperty, o que altera a flag configurable do descriptor e a saída toString() da função getter. Scripts de detecção testam essas discrepâncias.
O mesmo se aplica a outros overrides. chrome.runtime, arrays de plugins e consultas de permissões apresentam diferenças detectáveis quando suas implementações nativas são substituídas por stubs JavaScript.
Diferenças de renderização headless
Mesmo com --headless=new (o modo headless mais recente), o Chrome renderiza de forma ligeiramente diferente do Chrome com interface gráfica. Métricas de fontes, saída canvas acelerada por GPU e APIs de dimensões de tela diferem. O plugin stealth corrige algumas propriedades do navigator mas não consegue mudar o comportamento do motor de renderização.
O que substituiu os plugins stealth
O ecossistema se dividiu em duas abordagens: drivers patcheados (corrigem a camada de protocolo) e navegadores patcheados (corrigem a camada do motor). Resolvem problemas diferentes.
Drivers patcheados: Rebrowser e Patchright
Rebrowser oferece substituições diretas para Puppeteer e Playwright (rebrowser-puppeteer, rebrowser-playwright). As correções visam os artefatos do protocolo CDP: modificam como Runtime.enable e outros comandos interagem com o navegador para evitar deixar rastros detectáveis. Você troca o nome do pacote no código e todo o resto permanece igual.
// Before: detected
const puppeteer = require('puppeteer');
// After: CDP artifacts patched
const puppeteer = require('rebrowser-puppeteer');Patchright faz o mesmo para Playwright, com foco em Python. Corrige os vazamentos de Runtime.enable e tem manutenção ativa.
Limitação: Drivers patcheados corrigem a detecção de protocolo mas não tratam o fingerprinting do navegador. Se o site verifica Canvas, WebGL, AudioContext ou renderização de fontes, você continua exposto. Drivers patcheados respondem à pergunta "você é automatizado?" mas não a "você é um dispositivo real?".
Navegadores patcheados: motores anti-detecção
Um navegador patcheado modifica o Chromium para que os sinais de impressão digital sejam coerentes no nível do motor. A saída Canvas, a renderização WebGL, os dados AudioContext, as métricas de fontes, as dimensões de tela, o fuso horário e o locale reportam valores que correspondem a um perfil de dispositivo real.
Isso é o que o Clawbrowser faz. É um fork do Chromium com correções de impressão digital no nível do motor em mais de 20 superfícies, roteamento de proxy integrado, prevenção de vazamentos WebRTC e suporte CDP nativo. Seu código Puppeteer ou Playwright existente se conecta a ele via 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 ChromeO que isso gerencia que plugins stealth não conseguem:
- Coerência Canvas/WebGL/AudioContext no nível do motor (não stubs JavaScript)
- Impressão digital TLS correspondente a uma sessão Chrome real
- Conexão CDP sem artefatos
Runtime.enable - Prevenção de vazamentos WebRTC no nível do navegador
- Roteamento de proxy com alinhamento geográfico integrado
Para o detalhamento completo do que é submetido a fingerprinting, consulte Impressão digital do navegador: os 20+ sinais usados pelos sistemas anti-bot.
Como escolher
A ferramenta certa depende do que está detectando você.
| Tipo de detecção | Sintoma | Solução |
|---|---|---|
| CDP protocol artifacts | Blocked immediately on page load, no CAPTCHA | Patched driver (Rebrowser, Patchright) |
| Browser fingerprint mismatch | CAPTCHA on every page, or silent data differences | Patched browser (Clawbrowser) |
| TLS fingerprint mismatch | Blocked before page loads (403 on first request) | Patched browser with proxy routing |
| IP reputation | Blocked from datacenter IPs | Residential proxy (any approach) |
| Behavioral detection | Blocked after 5-10 pages | Timing and session management in your code |
Quando drivers patcheados são suficientes
Se você automatiza sites com detecção básica que verifica artefatos CDP sem fazer fingerprinting profundo do navegador, Rebrowser ou Patchright vão funcionar. Isso cobre muitos sites com configurações anti-bot mais leves.
Quando você precisa de um navegador patcheado
Se o site usa Cloudflare Bot Management, Akamai Bot Manager, DataDome ou PerimeterX, você precisa de coerência de impressão digital no nível do motor. Correções no nível da página e no nível do driver não bastam quando a detecção verifica mais de 20 superfícies do navegador simultaneamente.
Clawbrowser é um navegador anti-detecção local, gratuito, baseado em Chromium com impressões digitais gerenciadas, roteamento de proxy, CDP nativo e um servidor MCP integrado. Ele cuida da identidade do navegador e das camadas de rede para que seu código lide apenas com comportamento e gerenciamento de sessões.
Migrando dos plugins stealth
Se você usa puppeteer-extra-plugin-stealth ou playwright-stealth, a migração para o Clawbrowser leva menos de cinco minutos.
Antes (plugin stealth)
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
const browser = await puppeteer.launch({ headless: false });Depois (Clawbrowser)
const puppeteer = require('puppeteer-core');
// Connect to Clawbrowser over CDP
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://127.0.0.1:9222'A diferença principal: você remove puppeteer-extra e puppeteer-extra-plugin-stealth das dependências por completo. Sem configuração de plugin. Sem seleção de módulos de evasão. A anti-detecção acontece no nível do navegador, não no seu código.
Para padrões específicos de scraping (paginação, aquecimento de sessão, bypass do Cloudflare), consulte Web Scraping sem ser detectado.
FAQ
O puppeteer-extra-stealth é completamente inútil?
Ainda funciona em sites sem sistema anti-bot comercial. Se o site alvo só verifica navigator.webdriver e propriedades JavaScript básicas, o plugin stealth é suficiente. Mas qualquer site com Cloudflare, Akamai, DataDome, PerimeterX ou plataformas sociais como Facebook, Instagram, LinkedIn e X vai detectá-lo.
O playwright-stealth tem os mesmos problemas?
Sim. playwright-stealth usa a mesma abordagem: overrides JavaScript via injeção no nível da página. Não consegue alcançar impressões digitais TLS, artefatos CDP ou renderização no nível do motor. As limitações de detecção são idênticas.
Posso usar Rebrowser e Clawbrowser juntos?
Não é necessário. O Clawbrowser gerencia tanto a camada de protocolo quanto a camada de impressões digitais. As correções do Rebrowser são úteis quando você usa Chrome padrão e não pode mudar para um navegador anti-detecção. Se você usa Clawbrowser, os artefatos CDP já estão resolvidos.
Por que o stealth ainda tem 600K downloads por semana?
Inércia. A maioria dos tutoriais e respostas do Stack Overflow ainda o recomenda. Desenvolvedores copiam soluções que funcionavam em 2022 sem verificar se o pacote ainda recebe manutenção. O alto número de downloads não significa que seja eficaz contra a detecção moderna.
Pare de patchear, comece a resolver
Plugins stealth eram uma solução razoável quando a detecção anti-bot dependia de verificações no nível JavaScript. A detecção migrou para impressões digitais TLS, análise do protocolo CDP e diferenças de renderização no nível do motor. Correções no nível da página não conseguem alcançar esses sinais.
Instale o Clawbrowser para gerenciar a detecção no nível do navegador: copie o prompt de instalação em clawbrowser.ai e cole no seu agente de IA. Remova puppeteer-extra e puppeteer-extra-plugin-stealth das dependências. Conecte seu código Puppeteer ou Playwright existente via CDP. A anti-detecção está no navegador, não no seu código.
Para o modelo de detecção subjacente, consulte Automação de navegador sem bloqueios: a pilha de defesa de 4 camadas.
Continue exploring
Ask AI how Clawbrowser helps
Continue lendo
Artigos relacionados

Web scraping sem ser detectado: técnicas que continuam funcionando
Guia prático de web scraping: reconhecimento, HTTP ou navegador, extração de dados, paginação, sessões e escala com Playwright.
Ler artigo →
Automação de Navegador Sem Ser Bloqueado: A Defesa em 4 Camadas
Por que automação de navegador é bloqueada e como resolver em cada camada: identidade do browser, rede, comportamento e gerenciamento de sessão. Guia estrutural para devs.
Ler artigo →