Cómo omitir Cloudflare con Puppeteer
Advanced Data Extraction Specialist
En el campo de la recolección de datos y el rastreo web, los desarrolladores a menudo se enfrentan a un problema espinoso: cómo eludir eficazmente el mecanismo de protección de Cloudflare. Como un servicio de seguridad y optimización del rendimiento de sitios web ampliamente utilizado en el mundo, las funciones anti-rastreadores y de firewall de Cloudflare plantean desafíos considerables al rastreo de datos. Este problema es particularmente prominente cuando se utiliza Puppeteer para el rastreo web. Este artículo explorará a fondo cómo utilizar Scrapeless Scraping Browser, combinado con Puppeteer, para superar fácilmente las limitaciones de Cloudflare e iniciar un viaje de recolección de datos eficiente y estable.
Cómo Cloudflare detecta bots
Cloudflare detecta bots utilizando una combinación de técnicas, que incluyen:
- Análisis de comportamiento: monitorea los movimientos del ratón, las pulsaciones de teclas, el comportamiento de desplazamiento y los patrones de interacción para distinguir a los usuarios humanos de los bots.
- Reputación IP: utiliza una base de datos global de inteligencia de amenazas para identificar direcciones IP sospechosas en función de la actividad pasada.
- Pruebas de desafío-respuesta: implementa CAPTCHAs o desafíos de JavaScript para verificar si un visitante es humano.
- Huellas digitales: analiza las características del navegador, los encabezados HTTP y los atributos del dispositivo para detectar la automatización.
- Limitación de velocidad: marca patrones de solicitud inusuales, como comportamientos de navegación de alta frecuencia o no humanos.
- Aprendizaje automático: utiliza modelos de IA entrenados con grandes cantidades de datos de tráfico para identificar comportamientos similares a los de los bots.
- Huellas digitales TLS: examina cómo se establecen las conexiones TLS para diferenciar entre navegadores reales y scripts automatizados.
- Monitoreo de la ejecución de JavaScript: verifica si JavaScript se ejecuta correctamente para detectar navegadores sin cabeza y bots que deshabilitan los scripts.
Por qué Puppeteer solo no puede eludir Cloudflare
Aquí está la traducción con la palabra clave principal "eludir Cloudflare" insertada:
1. Mecanismos de detección complejos de Cloudflare
Cloudflare utiliza múltiples métodos para detectar y distinguir entre usuarios humanos y herramientas automatizadas como Puppeteer, incluyendo el análisis de comportamiento, las comprobaciones de reputación IP y las huellas digitales HTTP. Estos mecanismos dificultan que Puppeteer solo pueda eludir Cloudflare.
2. El comportamiento predeterminado de Puppeteer se identifica fácilmente
De forma predeterminada, Puppeteer exhibe comportamientos que difieren de los usuarios humanos, tales como:
- Cadenas de agente de usuario fijas que no coinciden con los navegadores típicos.
- Falta de interacciones humanas, como movimientos del ratón antinaturales o patrones de clic.
- Encabezados de solicitud distintos que lo revelan como una herramienta automatizada.
3. Mecanismos de desafío de Cloudflare
Cuando Cloudflare detecta tráfico sospechoso, activa desafíos como CAPTCHAs o pasos de verificación. Puppeteer solo no puede resolver estos desafíos, lo que hace imposible eludir Cloudflare sin herramientas adicionales.
4. Necesidad de configuración y herramientas adicionales
Para eludir Cloudflare, Puppeteer requiere configuraciones adicionales, tales como:
- Simular el comportamiento humano con retrasos aleatorios e interacciones realistas.
- Usar IPs proxy para evitar bloqueos de IP.
- Modificar los encabezados de solicitud para imitar navegadores reales.
- Integrar servicios de resolución de CAPTCHA como 2Captcha.
5. Reglas de detección continuamente actualizadas
Cloudflare actualiza regularmente sus algoritmos de detección, haciendo que los métodos de elusión antiguos sean ineficaces con el tiempo.
En resumen, Puppeteer solo tiene dificultades para eludir la detección de Cloudflare. Debe combinarse con otras técnicas y herramientas para simular el comportamiento humano y manejar los desafíos de Cloudflare de manera eficaz.
Método n.º 1: Eludir Cloudflare usando puppeteer-extra-plugin-stealth
puppeteer-extra-plugin-stealth es un parche que ayuda a eludir Cloudflare enmascarando las propiedades del navegador automatizado de Puppeteer, haciéndolo parecer un navegador real.
Por ejemplo, el plugin Stealth anula la propiedad WebDriver y reemplaza la bandera HeadlessChrome con Chrome para enmascarar las señales de automatización. También simula otras propiedades legítimas del navegador, como chrome.runtime, lo que lo hace parecer con cabeza incluso en modo sin cabeza.
El plugin Puppeteer Stealth utiliza una API similar a la de Puppeteer base, por lo que no hay una curva de aprendizaje para los desarrolladores que ya utilizan Puppeteer.
Vamos a eludir CoinTracker, un sitio web con una protección Cloudflare simple, para ver cómo funciona Puppeteer Stealth.
Primero, instala el plugin:
npm install puppeteer-extra puppeteer-extra-plugin-stealth
Ahora, importa las bibliotecas necesarias y agrega el plugin Stealth. Luego, solicita el sitio web protegido y toma una captura de pantalla de su página de inicio:
// npm install puppeteer-extra puppeteer-extra-plugin-stealth
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
// add the stealth plugin
puppeteer.use(StealthPlugin());
(async () => {
// set up browser environment
const browser = await puppeteer.launch();
const page = await browser.newPage();
// navigate to a URL
await page.goto('https://sailboatdata.com/sailboat/11-meter/', {
waitUntil: 'load',
});
// take page screenshot
await page.screenshot({ path: 'screenshot.png' });
// close the browser instance
await browser.close();
})();
El plugin Puppeteer Stealth elude Cloudflare y toma capturas de pantalla de la página de inicio del sitio web, como se muestra:

Has eludido con éxito la detección de Cloudflare.
Por supuesto, el sitio web de destino actual es fácil de acceder porque no aplica ninguna técnica de detección sofisticada.
¿Puede el plugin Puppeteer Stealth manejar medidas de seguridad más avanzadas? La respuesta es...
El plugin Stealth está bloqueado, como se muestra en la figura.
Limitaciones del plugin Puppeteer Stealth
Algunos sitios web utilizan comprobaciones de seguridad de Cloudflare más avanzadas que otros. En tales casos, enmascarar las propiedades de automatización de Puppeteer utilizando la técnica de evasión de Cloudflare puppeteer-extra-plugin-stealth es insuficiente para pasar.
Por ejemplo, Puppeteer Stealth se bloqueó al intentar acceder a la página de desafío de Cloudflare.
Pruébalo tú mismo reemplazando la URL de destino anterior con la URL de la página de desafío:
// npm install puppeteer-extra puppeteer-extra-plugin-stealth
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
// add the stealth plugin
puppeteer.use(StealthPlugin());
(async () => {
// set up browser environment
const browser = await puppeteer.launch();
const page = await browser.newPage();
// navigate to a URL
await page.goto('https://www.scrapingcourse.com/cloudflare-challenge', {
waitUntil: 'networkidle0',
});
// wait for the challenge to resolve
await new Promise(function (resolve) {
setTimeout(resolve, 10000);
});
// take page screenshot
await page.screenshot({ path: 'screenshot.png' });
// close the browser instance
await browser.close();
})();
El plugin Stealth se bloqueó, como se muestra:

Los resultados indican que un sistema anti-bot de Cloudflare más avanzado detectó el plugin Stealth como un bot. El plugin Stealth todavía tiene algunos rasgos detectables, como la representación inconsistente de WebGL o Canvas, delatándolo como un bot.
¿Cómo puedes resolver estas limitaciones y extraer datos de sitios web complicados? La respuesta es Scrapeless.
Método n.º 2: Eludir Cloudflare usando Scrapeless y Puppeteer
La forma más fácil de evitar las limitaciones de Puppeteer y su plugin Stealth es integrar la biblioteca con el Scrapeless Scraping Browser. Con Scrapeless Scraping Browser, tu raspador Puppeteer se fortalece con evasiones avanzadas para parecer humano y eludir la detección anti-bot.
Todo lo que tienes que hacer es agregar una sola línea de código a tu script Puppeteer existente, y Scraping Browser te ayudará a manejar la huella digital del navegador principal, agregar plugins y extensiones faltantes, administrar la rotación de proxies residenciales y más.
Scraping Browser también se ejecuta en la nube, evitando la sobrecarga de memoria de ejecutar instancias de navegador locales. Esta característica lo hace altamente escalable.
Características clave de Scrpeless Scraping Browser
Scrpeless Scraping Browser es una herramienta diseñada para la extracción de datos web eficiente y a gran escala:
- Simula comportamientos de interacción humana real para eludir mecanismos anti-rastreadores avanzados como la detección de huellas digitales del navegador y la detección de huellas digitales TLS.
- Admite la solución automática de múltiples tipos de códigos de verificación, incluyendo cf_challenge para garantizar un proceso de rastreo ininterrumpido.
- Integración perfecta de herramientas populares como Puppeteer y Playwright para simplificar el proceso de desarrollo y admitir el lanzamiento de tareas automatizadas con una sola línea de código.
Cómo integrar Scraping Browser con Puppeteer
Scrapeless requiere puppeteer-core, una versión de Puppeteer que no descarga el binario de Chrome. Por lo tanto, asegúrate de instalarlo:
npm install puppeteer-core
Paso 1. Regístrate en Scrapeless, haz clic en Administración de claves API > Crear clave API para crear tu clave API de Scrapeless.
Regístrate en Scrapeless y obtén una prueba gratuita. Si tienes alguna pregunta, también puedes ponerte en contacto con Liam a través de Discord

Paso 2. Luego, ve a Scraping Browser y copia tu URL del navegador.

Integra la URL del navegador copiada en tu script Puppeteer de la siguiente manera:
const puppeteer = require('puppeteer-core');
const connectionURL = 'wss://browser.scrapeless.com/browser?token=<YOUR_Scrapeless_API_KEY>&session_ttl=180&proxy_country=ANY';
(async () => {
// set up browser environment
const browser = await puppeteer.connect({
browserWSEndpoint: connectionURL,
});
// create a new page
const page = await browser.newPage();
// navigate to a URL
await page.goto('https://www.scrapingcourse.com/cloudflare-challenge', {
waitUntil: 'networkidle0',
});
// wait for the challenge to resolve
await new Promise(function (resolve) {
setTimeout(resolve, 10000);
});
//take page screenshot
await page.screenshot({ path: 'screenshot.png' });
// close the browser instance
await browser.close();
})();
Necesitas reemplazar https://www.scrapingcourse.com/cloudflare-challenge con cualquier sitio web con cloudflare-challenge;
También reemplaza tu clave API de Scrapeless en la parte del token.
El código anterior accede y toma capturas de pantalla de la página protegida. Mira el resultado a continuación:

¡Felicidades 🎉! Has eludido con éxito Cloudflare usando Puppeteer y Scrapeless.
Beneficios de integrar Scrapeless Scraping Browser en Puppeteer para eludir Cloudflare
La integración de Scrapeless Scraping Browser en Puppeteer para eludir Cloudflare tiene los siguientes beneficios:
- Aumentar la anti-detección
Puppeteer solo tiene características de automatización claras (por ejemplo, atributo navigator.webdriver, bandera de agente de usuario HeadlessChrome), lo que facilita que Cloudflare lo identifique como un bot. Scrapeless Scraping Browser puede imitar huellas digitales de navegadores reales (tipo, agente de usuario, resolución de pantalla, etc.), ocultando eficazmente las características de automatización de Puppeteer, reduciendo el riesgo de detección de Cloudflare y aumentando las tasas de éxito de raspado.
- Simplificar la configuración y la integración
Scrapeless Scraping Browser ofrece API e métodos de integración fáciles de usar. Los desarrolladores pueden agregar una pequeña cantidad de código a los scripts Puppeteer existentes para aprovechar sus potentes funciones anti-detección, sin necesidad de comprender los aspectos internos de Puppeteer o los mecanismos anti-rastreo de Cloudflare. Esto reduce las barreras de desarrollo y las cargas de trabajo.
- Mejorar el mantenimiento del código
El uso de Scrapeless Scraping Browser reduce la dependencia de las configuraciones subyacentes de Puppeteer y los scripts personalizados. Esto hace que el código sea más limpio y claro, facilitando el mantenimiento y las actualizaciones futuras.
Recursos adicionales
Cómo eludir la guía completa del desafío de Cloudflare
¿Qué es la huella digital TCP/IP?
Documentación oficial de la API de Scrapeless
Conclusión
En resumen, eludir Cloudflare con Puppeteer requiere herramientas y métodos eficaces. Scrapeless Scraping Browser ofrece una solución simple pero potente al mejorar la anti-detección, simplificar la integración y mejorar el mantenimiento. Asegúrate siempre del cumplimiento legal al raspar.
Mejora la eficiencia de tu negocio y elige las soluciones personalizadas de nivel empresarial de Scrapeless Scraping Browser. Ofrecemos servicios profesionales y eficientes de recolección de datos.
En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.



