Puppeteer-Extra-Stealth está obsoleto: qué usa la automatización moderna — portada ilustrada de artículo de Clawbrowser

Puppeteer-Extra-Stealth está obsoleto: qué usa la automatización moderna

Clawbrowser Teamautomatización-de-navegadorespuppeteerplaywrightanti-botguía

puppeteer-extra-plugin-stealth es el paquete anti-detección más popular para Puppeteer. Sigue registrando más de 600K descargas semanales en npm. También lleva sin recibir una actualización desde marzo de 2023. La versión 2.11.2 es la última y seguirá siéndolo: el mantenimiento está inactivo, los issues de GitHub se acumulan y los sistemas anti-bot han evolucionado.

TL;DR: Los plugins stealth parchean señales de detección con overrides de JavaScript a nivel de página. En 2026, los sistemas anti-bot como Cloudflare, Akamai y DataDome verifican señales que JavaScript no puede alcanzar: huellas TLS, artefactos del protocolo CDP y diferencias de renderizado a nivel de motor. La solución no es un plugin mejor. Es una capa diferente: un driver parcheado que oculta las fugas del protocolo o un navegador parcheado que gestiona las huellas digitales desde el motor.


Qué hacen realmente los plugins stealth

puppeteer-extra-plugin-stealth agrupa 11 módulos de evasión que se ejecutan mediante evaluateOnNewDocument. Cada módulo parchea una superficie de detección:

Módulo Qué parchea
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

Estos parches funcionaban en 2021-2022, cuando los sistemas anti-bot se basaban principalmente en propiedades JavaScript a nivel de página. No sirven contra lo que los sistemas de detección modernos realmente verifican.

Por qué los plugins stealth fallan en 2026

La detección anti-bot ha descendido por debajo de la capa JavaScript. Las señales relevantes ahora son aquellas que evaluateOnNewDocument no puede alcanzar.

Fugas del protocolo CDP

Cuando Puppeteer se conecta a Chrome, envía comandos CDP como Runtime.enable, Page.enable y Network.enable. Estos comandos dejan artefactos en el estado interno del navegador que los scripts anti-bot pueden detectar. El plugin stealth no toca CDP porque opera a nivel de página, no a nivel de protocolo.

El comando Runtime.enable por sí solo basta para identificar una sesión automatizada. Ningún parche a nivel de página oculta el hecho de que se han emitido comandos CDP.

Huella TLS

Cloudflare comprueba las huellas TLS (JA3/JA4) antes de servir cualquier HTML. Si la huella TLS es incorrecta, tu sesión recibe un challenge o un bloqueo antes de que los parches JavaScript del plugin stealth lleguen a cargarse. El plugin opera a nivel de página y no tiene acceso a la capa TLS. Para una explicación completa de cómo funciona la huella TLS en la pila de detección, consulta la sección de capa de red en Automatización de navegadores sin bloqueos.

Detección de overrides JavaScript

Los scripts anti-bot no solo comprueban el valor de navigator.webdriver. Comprueban el descriptor de propiedad. Un navegador real tiene webdriver definido como un getter nativo en el prototipo de Navigator. El plugin stealth lo sobrescribe con Object.defineProperty, lo que altera la flag configurable del descriptor y la salida de toString() de la función getter. Los scripts de detección verifican estas discrepancias.

Lo mismo ocurre con otros overrides. chrome.runtime, los arrays de plugins y las consultas de permisos presentan diferencias detectables cuando sus implementaciones nativas se reemplazan con stubs JavaScript.

Diferencias de renderizado headless

Incluso con --headless=new (el modo headless más reciente), Chrome renderiza de forma ligeramente distinta al Chrome con interfaz gráfica. Las métricas de fuentes, la salida de canvas acelerada por GPU y las APIs de dimensiones de pantalla difieren. El plugin stealth parchea algunas propiedades del navigator pero no puede cambiar el comportamiento del motor de renderizado.


Qué reemplazó a los plugins stealth

El ecosistema se ha dividido en dos enfoques: drivers parcheados (corrigen la capa de protocolo) y navegadores parcheados (corrigen la capa del motor). Resuelven problemas diferentes.

Drivers parcheados: Rebrowser y Patchright

Rebrowser ofrece reemplazos directos para Puppeteer y Playwright (rebrowser-puppeteer, rebrowser-playwright). Los parches apuntan a los artefactos del protocolo CDP: modifican cómo Runtime.enable y otros comandos interactúan con el navegador para evitar dejar rastros detectables. Solo cambias el nombre del paquete en tu código y todo lo demás permanece igual.

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

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

Patchright hace lo mismo para Playwright, con foco en Python. Parchea las fugas de Runtime.enable y tiene mantenimiento activo.

Limitación: Los drivers parcheados corrigen la detección de protocolo pero no abordan el fingerprinting del navegador. Si el sitio verifica Canvas, WebGL, AudioContext o renderizado de fuentes, sigues expuesto. Los drivers parcheados responden a "¿estás automatizado?" pero no a "¿eres un dispositivo real?".

Un navegador parcheado modifica Chromium para que las señales de huella digital sean coherentes a nivel de motor. La salida de Canvas, el renderizado WebGL, los datos de AudioContext, las métricas de fuentes, las dimensiones de pantalla, la zona horaria y el locale reportan valores que coinciden con un perfil de dispositivo real.

Esto es lo que hace Clawbrowser. Es un fork de Chromium con parches de huella digital a nivel de motor en más de 20 superficies, enrutamiento de proxy integrado, prevención de fugas WebRTC y soporte nativo de CDP. Tu código existente de Puppeteer o Playwright se conecta a él por 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

Qué gestiona que los plugins stealth no pueden:

  • Coherencia de Canvas/WebGL/AudioContext a nivel de motor (no stubs JavaScript)
  • Huella TLS que coincide con una sesión real de Chrome
  • Conexión CDP sin artefactos de Runtime.enable
  • Prevención de fugas WebRTC a nivel de navegador
  • Enrutamiento de proxy con alineación geográfica integrada

Para el desglose completo de lo que se somete a fingerprinting, consulta Huella digital del navegador: las 20+ señales que usan los sistemas anti-bot.


Cómo elegir

La herramienta adecuada depende de qué te está detectando.

Tipo de detección Síntoma Solución
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

Cuándo los drivers parcheados son suficientes

Si automatizas sitios con detección básica que verifica artefactos CDP pero no hace fingerprinting profundo de tu navegador, Rebrowser o Patchright funcionarán. Esto cubre una gran cantidad de sitios con configuraciones anti-bot más ligeras.

Cuándo necesitas un navegador parcheado

Si el sitio ejecuta Cloudflare Bot Management, Akamai Bot Manager, DataDome o PerimeterX, necesitas coherencia de huellas digitales a nivel de motor. Los parches a nivel de página y los parches a nivel de driver no bastan cuando la detección verifica más de 20 superficies del navegador simultáneamente.

Clawbrowser es un navegador anti-detección local, gratuito, basado en Chromium con huellas gestionadas, enrutamiento de proxy, CDP nativo y un servidor MCP integrado. Se encarga de la identidad del navegador y las capas de red para que tu código solo se ocupe del comportamiento y la gestión de sesiones.


Migrar desde plugins stealth

Si actualmente usas puppeteer-extra-plugin-stealth o playwright-stealth, la migración a Clawbrowser lleva 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 });

Después (Clawbrowser)

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

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

La diferencia clave: eliminas puppeteer-extra y puppeteer-extra-plugin-stealth de tus dependencias por completo. Sin configuración de plugins. Sin selección de módulos de evasión. La anti-detección ocurre a nivel de navegador, no en tu código.

Para patrones específicos de scraping (paginación, calentamiento de sesión, bypass de Cloudflare), consulta Web Scraping sin ser detectado.


FAQ

¿Es puppeteer-extra-stealth completamente inútil?

Todavía funciona en sitios sin sistema anti-bot comercial. Si el sitio objetivo solo comprueba navigator.webdriver y propiedades JavaScript básicas, el plugin stealth es suficiente. Pero cualquier sitio con Cloudflare, Akamai, DataDome, PerimeterX o plataformas sociales como Facebook, Instagram, LinkedIn y X lo detectará.

¿Tiene playwright-stealth los mismos problemas?

Sí. playwright-stealth usa el mismo enfoque: overrides JavaScript mediante inyección a nivel de página. No puede alcanzar huellas TLS, artefactos CDP ni renderizado a nivel de motor. Las limitaciones de detección son idénticas.

¿Puedo usar Rebrowser y Clawbrowser juntos?

No es necesario. Clawbrowser gestiona tanto la capa de protocolo como la capa de huellas digitales. Los parches de Rebrowser son útiles cuando ejecutas Chrome estándar y no puedes cambiar a un navegador anti-detección. Si usas Clawbrowser, los artefactos CDP ya están resueltos.

¿Por qué stealth sigue teniendo 600K descargas por semana?

Inercia. La mayoría de los tutoriales y respuestas de Stack Overflow aún lo recomiendan. Los desarrolladores copian soluciones que funcionaban en 2022 sin verificar si el paquete sigue en mantenimiento. El alto número de descargas no significa que sea efectivo contra la detección moderna.


Deja de parchear, empieza a resolver

Los plugins stealth fueron una solución razonable cuando la detección anti-bot se basaba en verificaciones a nivel de JavaScript. La detección ha migrado a huellas TLS, análisis del protocolo CDP y diferencias de renderizado a nivel de motor. Parchear a nivel de página no puede alcanzar estas señales.

Instala Clawbrowser para gestionar la detección a nivel de navegador: copia el prompt de instalación desde clawbrowser.ai y pégalo en tu agente de IA. Elimina puppeteer-extra y puppeteer-extra-plugin-stealth de tus dependencias. Conecta tu código existente de Puppeteer o Playwright por CDP. La anti-detección está en el navegador, no en tu código.

Para el modelo de detección subyacente, consulta Automatización de navegadores sin bloqueos: la pila de defensa de 4 capas.

Continue exploring

Ask AI how Clawbrowser helps

Sigue leyendo

Ver todos →