Cómo resolver Cloudflare con Puppeteer

Lucas Mitchell
Automation Engineer
28-Aug-2024

Cómo Resolver Cloudflare con Puppeteer
Introducción
Cloudflare es un servicio poderoso que proporciona seguridad y mejoras de rendimiento para sitios web. Protege los sitios de una variedad de amenazas, incluidos los ataques DDoS y los bots maliciosos, mediante la implementación de varios mecanismos de seguridad. Si bien estas protecciones son beneficiosas para los propietarios de sitios web, pueden representar desafíos importantes para los desarrolladores involucrados en el raspado web y la automatización. Las defensas de Cloudflare a menudo incluyen CAPTCHA, desafíos de JavaScript y verificaciones de navegador, todos diseñados para bloquear scripts automatizados. Para aquellos que utilizan herramientas como Puppeteer para automatizar tareas, estas barreras pueden ser un obstáculo importante. En esta guía, repasaremos cómo utilizar Puppeteer para navegar y resolver eficazmente las protecciones de Cloudflare, lo que le permitirá continuar sus proyectos de automatización sin interrupciones.
Guía paso a paso para usar Puppeteer para resolver Cloudflare
Paso 1: Configurar Puppeteer
Para comenzar, deberá configurar Puppeteer, una biblioteca de Node.js que ofrece una API de alto nivel para controlar Chrome o Chromium. Esta herramienta se utiliza ampliamente para automatizar tareas, pruebas y raspar sitios web.
Comience instalando Puppeteer utilizando npm:
bash
npm install puppeteer
Una vez instalado, puede escribir un script simple para iniciar una instancia de navegador y navegar a un sitio web protegido por Cloudflare:
javascript
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto('https://example.com'); // Reemplace con su URL de destino
await page.screenshot({ path: 'before-cf.png' });
// Los pasos adicionales para manejar las protecciones de Cloudflare seguirán
await browser.close();
})();
Este script lanza un navegador, navega a la URL especificada y toma una captura de pantalla. Sin embargo, simplemente visitar el sitio podría activar las comprobaciones de seguridad de Cloudflare, por lo que se necesitan pasos adicionales para manejarlas.
Paso 2: Gestionando los desafíos de JavaScript de Cloudflare
Cloudflare a menudo utiliza desafíos de JavaScript para verificar que la solicitud proviene de un navegador legítimo. Estos desafíos generalmente implican ejecutar JavaScript que tarda unos segundos en completarse. Puppeteer puede manejar fácilmente estas comprobaciones esperando a que los scripts necesarios se ejecuten:
javascript
await page.waitForTimeout(10000); // Esperar 10 segundos a la verificación de Cloudflare
await page.screenshot({ path: 'after-cf.png' });
Este enfoque funciona para comprobaciones básicas, pero si Cloudflare implementa desafíos más sofisticados, como CAPTCHAs, necesitarás una solución más avanzada. Aquí es donde entra en juego CapSolver.
Integración de CapSolver: Mejora de Puppeteer para omitir Cloudflare
CapSolver es un servicio diseñado para resolver CAPTCHAs y otros desafíos similares automáticamente, lo cual es particularmente útil cuando se trata de las protecciones avanzadas de Cloudflare. Al integrar CapSolver en tu script de Puppeteer, puedes automatizar la resolución de estos desafíos, permitiendo que tu script continúe ejecutándose sin interrupciones.
Aquí te mostramos cómo puedes integrar CapSolver con Puppeteer:
javascript
const puppeteer = require('puppeteer');
const axios = require('axios');
const clientKey = 'your-client-key-here'; // Reemplaza con tu clave de cliente de CapSolver
const websiteURL = 'https://example.com'; // Reemplaza con la URL de tu sitio web de destino
const websiteKey = 'your-website-key-here'; // Reemplaza con la clave del sitio web proporcionada por CapSolver
async function createTask() {
const response = await axios.post('https://api.capsolver.com/createTask', {
clientKey: clientKey,
task: {
type: "AntiTurnstileTaskProxyLess",
websiteURL: websiteURL,
websiteKey: websiteKey
}
}, {
javascript
headers: {
'Content-Type': 'application/json',
'Pragma': 'no-cache'
}
});
return response.data.taskId;
}
async function getTaskResult(taskId) {
console.log(taskId);
let response;
while (true) {
response = await axios.post('https://api.capsolver.com/getTaskResult', {
clientKey: clientKey,
taskId: taskId
}, {
headers: {
'Content-Type': 'application/json'
}
});
if (response.data.status === 'ready') {
return response.data.solution;
}
console.log('Status not ready, checking again in 5 seconds...');
await new Promise(resolve => setTimeout(resolve, 5000));
}
}
(async () => {
const taskId = await createTask();
const result = await getTaskResult(taskId);
console.log(result);
let solution = result.token;
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto(websiteURL);
await page.waitForSelector('input[name="cf-turnstile-response"]');
await page.evaluate(solution => {
document.querySelector('input[name="cf-turnstile-response"]').value = solution;
}, solution);
await page.screenshot({ path: 'example.png' });
})();
Navegar las medidas de seguridad de Cloudflare puede ser un desafío significativo para los desarrolladores e ingenieros de datos que trabajan en tareas de automatización y web scraping. Si bien Puppeteer proporciona las herramientas necesarias para manejar desafíos básicos, la integración de CapSolver le permite superar obstáculos más complejos como los CAPTCHA sin problemas. Esta combinación garantiza que sus scripts se ejecuten sin problemas, incluso en sitios protegidos por Cloudflare.
Para comenzar con CapSolver y mejorar la eficiencia de sus tareas de automatización, asegúrese de usar nuestro código de bonificación WEBS para obtener un valor adicional. Con las herramientas y estrategias correctas, puede navegar las defensas de Cloudflare y mantener sus proyectos en marcha.
Aviso de Cumplimiento: La información proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas está estrictamente prohibido y será investigado. Nuestras soluciones para la resolución de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos públicos. Fomentamos el uso responsable de nuestros servicios. Para obtener más información, visite nuestros Términos de Servicio y Política de Privacidad.
Máse

IA-MLLE: La Solución del Futuro para el Control de Riesgos, Reconocimiento de Imágenes y Resolución de CAPTCHA
Una exploración profunda de cómo los LLMs reconfiguran la resolución de CAPTCHA gráficos, combinando el razonamiento de cero shots con la precisión de redes neuronales convolucionales para el control de riesgos moderno.

Adélia Cruz
05-Dec-2025

Cómo resolver captchas al realizar scraping web con Scrapling y CapSolver
Scrapling + CapSolver permite el scraping automatizado con ReCaptcha v2/v3 y bypass de Cloudflare Turnstile.

Ethan Collins
05-Dec-2025

Cambiar el Agente de Usuario en Selenium | Pasos y Mejores Prácticas
Cambiar el Agente de Usuario en Selenium es un paso crucial para muchas tareas de scraping web. Ayuda a disfrazar el script de automatización como un navegador regular...

Adélia Cruz
05-Dec-2025

Cómo identificar si `action` es necesario para resolver Cloudflare Turnstile usando la extensión de CapSolver
Aprende a identificar la acción para resolver eficazmente el captcha de Cloudflare Turnstile. Sigue nuestra guía paso a paso sobre cómo usar las herramientas y técnicas de Capsolver.

Adélia Cruz
05-Dec-2025

Descubre el Poder de 9Proxy: Una Revisión Completa
En este artículo, te mostraremos qué es 9proxy y los servicios que ofrecen.

Emma Foster
04-Dec-2025

Raspado de web con Selenium y Python | Resolver Captcha al realizar el raspado de web
En este artículo te familiarizarás con el web scraping usando Selenium y Python, y aprenderás a resolver el Captcha involucrado en el proceso para una extracción de datos eficiente.

Rajinder Singh
04-Dec-2025

