Con los continuos avances en las tecnologías de seguridad de internet, Cloudflare ha introducido el mecanismo de verificación Turnstile. Este es un método de verificación sin fricción diseñado para proporcionar a los usuarios una experiencia de navegación fluida a la vez que bloquea eficazmente el tráfico malicioso. Sin embargo, para los desarrolladores que dependen de herramientas de automatización y tecnologías de raspado web, la introducción de Turnstile ha aumentado sin duda la dificultad de eludir dichas verificaciones.
Afortunadamente, al aprovechar el servicio en la nube Browserless de Nstbrowser y herramientas de automatización como Puppeteer, los desarrolladores pueden simular el comportamiento de un usuario real para eludir con éxito la verificación de Cloudflare Turnstile y continuar completando eficientemente las tareas de raspado de datos. Este artículo detallará cómo funciona Cloudflare Turnstile, su impacto en el raspado web y cómo usar el servicio Browserless de Nstbrowser para abordar este desafío.
Cloudflare Turnstile es un nuevo tipo de mecanismo de verificación diseñado para reemplazar el CAPTCHA tradicional. Distingue entre usuarios humanos y tráfico automatizado a través de un proceso de verificación sin fricción, reduciendo las cargas de interacción del usuario.
Si bien este mecanismo es más fácil de usar para los usuarios habituales, aumenta significativamente la dificultad para que los bots y las herramientas de automatización eludan la verificación.
La introducción de Cloudflare Turnstile plantea varios desafíos para las aplicaciones de raspado web:
Para los desarrolladores que necesitan raspar grandes cantidades de datos o realizar tareas de automatización, estos desafíos pueden reducir significativamente las tasas de éxito y la eficiencia de las tareas.
Utilizando el servicio en la nube Browserless de Nstbrowser y herramientas de automatización como Puppeteer, los desarrolladores pueden eludir sin problemas el mecanismo de verificación de Cloudflare Turnstile. A continuación se presentan las estrategias y los pasos de implementación para abordar estos desafíos:
El servicio en la nube Browserless de Nstbrowser es una solución de navegador sin cabeza de alto rendimiento diseñada específicamente para manejar mecanismos complejos anti-bot como Turnstile.
Instalar Puppeteer:
npm install puppeteer-core
Registrarse e iniciar sesión en Nstbrowser:
Visite el sitio web oficial de Nstbrowser y cree una cuenta.
Obtener la clave API:
Al escribir la lógica empresarial con Puppeteer, no necesita preocuparse por el bloqueo de sus solicitudes por parte de Cloudflare Turnstile. El servicio en la nube Browserless de Nstbrowser manejará automáticamente la verificación, permitiendo a los desarrolladores concentrarse en la lógica de 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,
});
try {
const page = await browser.newPage();
await page.goto('https://www.scrapingcourse.com/login/cf-turnstile', { waitUntil: 'domcontentloaded' });
// Wait for turnstile to unlock successfully
await page.waitForFunction(() => {
return window.turnstile && window.turnstile.getResponse();
});
await page.screenshot({ path: 'turnstile-solved.png' });
} catch (e) {
console.error(e);
} finally {
await browser.close();
}
})();
También puede probar el código directamente en la función Playground en el menú Browserless del cliente Nstbrowser.
Simplemente agregue el siguiente código en Playground, y se establecerá automáticamente la conexión Browserless:
const page = await browser.newPage();
await page.goto('https://www.scrapingcourse.com/login/cf-turnstile', {
waitUntil: 'domcontentloaded'
});
const token = await page.waitForFunction(() => {
return window.turnstile && window.turnstile.getResponse();
});
console.info("Turnstile solved token:", token);
Esta guía proporciona una solución completa para eludir Cloudflare Turnstile utilizando el servicio Browserless de Nstbrowser y Puppeteer, permitiendo a los desarrolladores superar los desafíos en el raspado web moderno de manera eficiente.