Cloudflare Challenge es un mecanismo anti-bot ampliamente utilizado diseñado para proteger los recursos del sitio web del tráfico malicioso. Una de sus características principales es el Cloudflare 5s Challenge, que bloquea eficazmente las solicitudes automatizadas a través de una verificación dinámica.
El Cloudflare 5s Challenge es un mecanismo de verificación inteligente. Cuando un usuario accede a un sitio web protegido por Cloudflare, el sistema lo obliga a esperar 5 segundos. Durante este período, Cloudflare realiza una serie de comprobaciones en el entorno del navegador del usuario, incluyendo, entre otras:
Para los desarrolladores de web scraping, el Cloudflare 5s Challenge presenta los siguientes desafíos:
Combinando Puppeteer con el servicio de navegador en la nube Browserless de Nstbrowser, puede simular el comportamiento de los navegadores de usuarios reales para eludir el Cloudflare 5s Challenge y continuar ejecutando sus tareas de web scraping.
Browserless es un producto de navegador en la nube sin cabeza de alto rendimiento proporcionado por Nstbrowser. Está diseñado para tareas de automatización, ofreciendo potentes capacidades de control remoto a través de API y WebSocket.
Con Browserless, los desarrolladores pueden eludir fácilmente los mecanismos anti-bot complejos (como Cloudflare Challenge) y concentrarse en la implementación de su lógica empresarial sin preocuparse por las barreras técnicas.
npm install puppeteer-core
Al escribir su lógica empresarial con Puppeteer, ya no tendrá que preocuparse por ser bloqueado por Cloudflare 5s Challenge. El servicio en la nube Browserless de Nstbrowser manejará automáticamente la verificación por usted, permitiéndole concentrarse únicamente en su código.
A continuación, se muestra un script de ejemplo completo:
import puppeteer from 'puppeteer-core';
const API_KEY = "your api key"; // required
const HOST = 'wss://less.nstbrowser.io';
const config = {
proxy: 'your proxy',
headless: true,
};
const query = new URLSearchParams({
"x-api-key": API_KEY, // required
"config": JSON.stringify(config),
});
const browserWSEndpoint = `${HOST}/connect?${query.toString()}`;
(async () => {
const browser = await puppeteer.connect({
browserWSEndpoint: browserWSEndpoint,
defaultViewport: null,
});
const page = await browser.newPage();
try {
await page.goto('https://www.scrapingcourse.com/cloudflare-challenge', {waitUntil: 'domcontentloaded'});
// TODO: Add your business logic here
await page.waitForSelector('#challenge-info', {visible: true});
await page.screenshot({path: 'challenge-solved.png', fullPage: true});
} catch (e) {
console.error(e);
} finally {
await browser.close();
}
})();
También puede probar directamente la ejecución del código real en la función Playground en el menú Browserless del cliente Nstbrowser.
Siguiendo esta guía, los desarrolladores pueden eludir fácilmente el Cloudflare 5s Challenge mientras aprovechan el servicio en la nube Browserless de Nstbrowser para mejorar significativamente la eficiencia y la estabilidad de sus proyectos de web scraping.