Una plataforma de código bajo que combina la simplicidad sin código con el poder del código completo 🚀
Empieza ahora gratis
Automatización invisible: uso de puppeteer-extra-plugin-stealth para eludir la protección contra bots
Marzo 26, 2025
7
min leer

Automatización invisible: uso de puppeteer-extra-plugin-stealth para eludir la protección contra bots

George Miloradovich
Investigador, redactor y entrevistador de casos prácticos
Tabla de contenidos.

¿Quiere evitar los sistemas de detección de bots mientras automatiza? Chrome? La puppeteer-extra-plugin-stealth es una herramienta que ayuda a ocultar las huellas de automatización, lo que dificulta que los sitios web detecten bots.

Puntos clave:

  • Lo que hace: Marcadores de automatización de máscaras (como navigator.webdriver) e imita el comportamiento del navegador real.
  • Como Funciona: Ajusta las huellas dactilares del navegador, introduce patrones de navegación naturales y administra los detalles de la sesión.
  • Por qué es importante: Ayuda a evitar la detección por parte de sistemas anti-bot avanzados como los desafíos CAPTCHA y la toma de huellas dactilares del navegador.
  • Preparar: Instalar Puppeteer, puppeteer-extra, y el complemento oculto a través de npm or HiloUtilice el complemento oculto para configurar su navegador para que se comporte como un usuario real.

Ejemplo rápido:

import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://bot.sannysoft.com');
  await browser.close();
})();

Esta herramienta es perfecta para automatizar tareas en sitios web con detección estricta de bots. Aprende a configurarla, optimizar su configuración y simular un comportamiento humano para pasar desapercibido.

Nodejs Titiritero Tutorial #7 - Detección de bypass usando ...

Titiritero

Instalación y configuración

Para comenzar, deberá instalar los paquetes necesarios y configurarlos para minimizar la detección durante la automatización. Esta sección abarca el proceso de instalación, la configuración inicial y las pruebas para garantizar que todo funcione correctamente.

Instalación de paquete requerida

Primero, instale Titiritero, Titiritero adicional, y el Plugin oculto. Abra su terminal y ejecute el siguiente comando:

npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

Si está utilizando Yarn, utilice este comando en su lugar:

yarn add puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

Pasos de configuración inicial

Tras la instalación, configura tu archivo JavaScript para integrar el complemento oculto. Este es el código que necesitas:

import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://nowsecure.nl/');
  await browser.close();
})();

Importante: Asegúrese de importar Puppeteer desde 'puppeteer-extra' en lugar de 'puppeteer' para acceder a la funcionalidad añadida.

Una vez que haya completado la configuración, es momento de verificar que todo funcione correctamente.

Probando su instalación

Ejecute estas pruebas para confirmar que su configuración funciona como se espera:

  • Prueba de funcionalidad básica:Intenta navegar a un sitio que detecte bots y revisa los resultados.
  • Verificación de captura de pantalla:Tome una captura de pantalla de la página de prueba para confirmar que las funciones ocultas se aplican correctamente.
  • Comprobación de la puntuación de reCAPTCHAObserve sus puntuaciones reCAPTCHA v3 para determinar si hay alguna mejora.

Para una verificación rápida, utilice el siguiente script:

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://bot.sannysoft.com');
  await page.waitForTimeout(5000);
  await page.screenshot({ path: 'stealth-test.png' });
  await browser.close();
})();

Este script tomará una captura de pantalla de la página de prueba. Revísala para comprobar si tu navegador funciona como un Chrome normal sin mostrar señales de automatización.

Una vez que su configuración pase estas pruebas, estará listo para sumergirse en las funciones avanzadas del complemento, que se tratan en la siguiente sección.

Características principales de Stealth

La puppeteer-extra-plugin-stealth Utiliza diversas técnicas para hacer que la navegación automatizada sea más difícil de detectar.

Enmascaramiento de identidad del navegador

El complemento modifica las propiedades clave del navegador para simular un navegador Chrome típico. Estas incluyen:

  • Reemplazar el valor predeterminado HeadlessChrome agente de usuario con uno más natural
  • Configuración realista Accept-Language cabeceras
  • Ajuste de la compatibilidad de códecs para la reproducción de medios
  • Modificación navigator.vendor para que coincida con el comportamiento estándar de Chrome

Estos cambios ayudan a crear un perfil de navegador que imita al de un usuario normal, no al de un bot. Además, el complemento emplea técnicas antihuella digital para reducir aún más el riesgo de detección.

Métodos antihuellas

Feature Método Propósito
Emulación del procesador Limita los procesadores lógicos a 4 Imita el hardware de usuario típico
Emulación de complementos Simulacros navigator.mimeTypes y complementos Imita la funcionalidad estándar de Chrome
Propiedades de la ventana Añade outerWidth y outerHeight Completa la simulación del navegador.
Propiedades del proveedor Ajusta el identificador de Google de Chrome Ayuda a evitar la detección de automatización

Estos métodos garantizan que el navegador se comporte de una manera que se alinea con lo que los sitios web esperan de los usuarios reales.

Eliminación de marcadores de automatización

Para disfrazar aún más la automatización, el complemento elimina o modifica los signos reveladores de la actividad del bot:

  • Elimina el navigator.webdriver perfecta
  • Añade chrome.app y chrome.csi objetos que están presentes en los navegadores Chrome habituales
  • Esconde el sourceurl atributo en los scripts de Puppeteer
  • Ajusta permissions Propiedades para que coincidan con el comportamiento natural del navegador

Gestión de CAPTCHA

El complemento también ayuda a reducir los desafíos de CAPTCHA al mantener un comportamiento consistente del navegador y administrar las sesiones de forma eficaz. Esto crea un patrón de navegación que se alinea con la actividad humana, lo que le permite eludir la mayoría de las pruebas de detección de bots en plataformas como sannysoft.com. Sin embargo, los sistemas antibots avanzados, como los utilizados por Cloudflare, aún puede detectar la automatización en algunos casos.

sbb-itb-23997f1

Configuración personalizada

La configuración personalizada le permite modificar las configuraciones ocultas y el comportamiento del navegador, ayudándole a evitar la detección de manera más efectiva.

Configuración del módulo Stealth

Puppeteer Stealth te permite administrar sus módulos de evasión para sitios web específicos. Puedes habilitarlos o deshabilitarlos según tus necesidades:

const StealthPlugin = require('puppeteer-extra-plugin-stealth')
const stealth = StealthPlugin({
  webglVendor: "Google Inc. (Intel)",
  webglRenderer: "Intel Iris OpenGL Engine",
  navigator: {
    platform: "MacIntel",
    languages: ["en-US", "en"]
  }
})

Después de configurar los módulos ocultos, puede ajustar el comportamiento del navegador para imitar mejor la actividad real del usuario.

Configuración del comportamiento del navegador

Ajuste los parámetros del navegador para imitar una experiencia de navegación genuina:

Categoría: Crecimiento positivo Opciones Propósito
Identidad de usuario Agente de usuario, plataforma, idiomas Crea una identidad de navegador consistente
Perfil de hardware Proveedor de WebGL, Dimensiones de pantalla Imita las características reales del dispositivo.
Entorno de ejecución Objetos de tiempo de ejecución de Chrome, propiedades del navegador Emula el comportamiento normal del navegador.

Introduzca retrasos naturales entre acciones para que la automatización sea menos detectable:

const randomDelay = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1) + min);
}

await page.waitForTimeout(randomDelay(1000, 3000));

Agregar estos retrasos ayuda a que su automatización se asemeje al comportamiento humano.

Configuración de proxy

El uso de proxies durante el inicio del navegador mejora el anonimato:

const browser = await puppeteer.launch({
  args: [
    `--proxy-server=http://proxy.example.com:8080`,
    '--disable-features=IsolateOrigins,site-per-process'
  ]
});

Probablemente sea imposible evitar todas las formas de detectar el cromo sin cabeza, pero debería ser posible dificultarlo tanto que resulte prohibitivo en costos o genere demasiados falsos positivos como para que sea viable. — TiZho, colaborador de GitHub

Rote los servidores proxy y configure la conmutación por error automática para mantener una conectividad fiable. Estas configuraciones ayudan a minimizar los riesgos de detección y a garantizar un rendimiento estable.

Mejores prácticas de sigilo

Para mantener las sesiones automatizadas bajo el radar, una planificación y ejecución cuidadosas son clave.

Patrones de navegación naturales

Simule una navegación realista agregando retrasos y acciones aleatorias:

async function emulateHumanBehavior(page) {
  // Random scrolling behavior
  await page.evaluate(() => {
    window.scrollBy({
      top: Math.random() * 500,
      behavior: 'smooth'
    });
  });

  // Random pauses between actions
  await page.waitForTimeout(1500 + Math.random() * 2500);
}
Patrón de comportamiento Implementación Propósito
Movimiento del raton Curvas y velocidades aleatorias Imita el movimiento natural del cursor.
Interacción de la página Variar la profundidad de desplazamiento y las pausas Simula hábitos de lectura
Tiempo de navegación Retrasos aleatorios (1.5–4 segundos) Evita patrones de tiempo predecibles
Velocidad de entrada Intervalos de pulsaciones de teclas aleatorios Imita el comportamiento de escritura humano

Estas interacciones simuladas funcionan junto con las configuraciones descritas anteriormente.

Gestión de sesiones

La gestión adecuada de sesiones garantiza la coherencia de la configuración oculta. Utilice el almacenamiento persistente para guardar las cookies y los datos de sesión:

const browserContext = await browser.createIncognitoBrowserContext({
  userDataDir: './sessions/user1',
  persistentContext: true
});

También puedes gestionar las cookies de forma eficaz:

// Remove specific cookies but keep session-critical data
await page.deleteCookie({
  name: '_ga',
  domain: '.example.com'
});

Pautas de uso

Combine las técnicas anteriores con estos pasos prácticos para una mejor automatización:

  • Solicitud de gestión de tarifas:Comience con un retraso de 2 segundos entre solicitudes y auméntelo si surgen CAPTCHAs.
  • Gestión de errores :Crear un sistema de reintentos para manejar solicitudes fallidas:
    const maxRetries = 3;
    const baseDelay = 2000;
    
    async function fetchWithRetry(page, url) {
      for (let i = 0; i < maxRetries; i++) {
        try {
          return await page.goto(url);
        } catch (error) {
          await page.waitForTimeout(baseDelay * Math.pow(2, i));
        }
      }
    }
    
  • Rotación de proxy:Utilice varias direcciones IP para evitar ser marcado por actividad excesiva.

Probablemente sea imposible evitar todas las formas de detectar el cromo sin cabeza, pero debería ser posible dificultarlo tanto que resulte prohibitivo en costos o genere demasiados falsos positivos como para que sea viable. — TiZho, colaborador de GitHub

Manténgase al tanto de la evolución de los métodos de detección antibots y ajuste su configuración según sea necesario. Estas prácticas complementan las técnicas de sigilo descritas anteriormente en este artículo.

Conclusión

A continuación se muestra un resumen rápido de los puntos principales y consejos para su uso. Titiritero-extra-plugin-stealth de manera efectiva.

Beneficios principales

Complemento extra sigiloso de Puppeteer Ayuda a automatizar la navegación sin ser marcado. Funciona ocultando los marcadores de automatización mediante módulos de evasión integrados.

Algunas características clave incluyen:

  • Eliminar el identificador 'HeadlessChrome' de los encabezados del agente de usuario.
  • Ocultar marcadores de automatización críticos, como navigator.webdriver.
  • Ajustar las huellas dactilares del navegador para imitar el comportamiento del usuario real.
  • Permitiendo estrategias de evasión personalizadas para las necesidades específicas del sitio web.

Consejos para la implementación

Para perfeccionar su configuración de automatización, tenga en cuenta estas estrategias:

Area de enfoque Estrategia Resultado
Módulos de evasión Habilite solo las funciones que necesita Menor riesgo de detección, mejor rendimiento
Gestión de errores Utilice la lógica de reintento con retroceso exponencial Manejo más confiable de problemas temporales
Manejo de sesiones Utilice contextos de navegador persistentes Perfil de sigilo consistente en todas las sesiones

Sugerencias adicionales:

  • Comience con la configuración de sigilo predeterminada y luego ajústela para adaptarla a sus necesidades.
  • Manténgase actualizado sobre las nuevas técnicas anti-bot y ajuste su enfoque en consecuencia.
  • Combine funciones ocultas con comportamientos de navegación naturales para obtener mejores resultados.
  • Concéntrese en la gestión consistente de la sesión para evitar la detección.

Aunque ninguna configuración es 100% infalible, combinar múltiples tácticas de evasión dificulta considerablemente la detección. El éxito depende de una configuración cuidadosa y de actualizaciones periódicas de los métodos. Estos consejos, junto con las funciones del plugin, sientan las bases para una automatización indetectable.

Artículos relacionados con

Blogs relacionados

Caso de uso

Respaldado por