
Lucas Mitchell
Automation Engineer

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.
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:
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:
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.
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:
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.
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:
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
}
}, {
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.
¿Qué es CAPTCHA AI? Aprende cómo los agentes de inteligencia artificial, la evaluación de riesgo, OCR y los flujos de trabajo de CapSolver se integran en la automatización autorizada de CAPTCHA.

Elija la mejor API de CAPTCHA para automatización autorizada, cobertura de tareas, fiabilidad de la API, accesibilidad y flujos de trabajo de CapSolver gobernados.
