¡Sabes, hay una cierta emoción en burlar los obstáculos, especialmente cuando esos obstáculos son guardianes digitales como Cloudflare. Si alguna vez te has encontrado mirando un desafío de Cloudflare mientras intentas automatizar una tarea web, estás en buena compañía. He estado ahí, muchas veces. Pero en 2024, el juego ha cambiado, y también las herramientas. Déjame guiarte a través de cómo he estado abordando Cloudflare con Playwright, y sí, también hablaremos sobre el nuevo y sigiloso del bloque, Cloudflare Turnstile.
¿Qué es Cloudflare y por qué importa?
Antes de sumergirnos en los detalles de la resolución de los desafíos de Cloudflare, tomemos un momento para comprender a qué nos enfrentamos. Cloudflare es un servicio de seguridad robusto utilizado por millones de sitios web para protegerse contra el tráfico malicioso, los ataques DDoS y una variedad de otras amenazas. Cuando detecta un comportamiento inusual, como un script automatizado que intenta acceder a una página, lanza un desafío, a menudo en forma de CAPTCHA, para verificar que eres un humano y no un bot.
Pero aquí está el truco: Cloudflare ya no se trata solo de lanzar CAPTCHA simples. En 2024, han implementado algo llamado Cloudflare Turnstile, un sistema de desafío más sofisticado y adaptable que está diseñado para ser aún más resistente a la automatización. Es un hueso duro de roer, pero con el enfoque correcto, aún puedes salir victorioso.
¿Te enfrentas a la repetida falla al resolver completamente el irritante captcha?
¡Descubre la resolución automática sin problemas del captcha con la tecnología de desbloqueo web automático impulsada por IA de Capsolver!
Reclama tu Código de bonificación para las mejores soluciones de captcha; CapSolver: WEBS. Después de canjearlo, obtendrás un bono adicional del 5% después de cada recarga, Ilimitado
Por qué Playwright es la herramienta de elección en 2024
Puede que te preguntes: "¿Por qué Playwright? ¿Por qué no seguir con el buen Selenium o Puppeteer?". Y esa es una pregunta válida. La respuesta es que Playwright ha surgido como una potencia para la automatización web, ofreciendo características que lo hacen particularmente efectivo contra los desafíos modernos como los que presenta Cloudflare.
Playwright admite múltiples contextos de navegador, lo que significa que puedes simular diferentes usuarios de manera más efectiva. También proporciona más control sobre el comportamiento del navegador, lo que facilita imitar las interacciones reales del usuario, algo crucial cuando se trata de las medidas de seguridad avanzadas de Cloudflare.
Empezando: Configurando Playwright
Lo primero es lo primero, si aún no lo has hecho, necesitarás instalar Playwright. Configurarlo es sencillo:
bashCopy
npm install playwright
Una vez instalado, estás listo para empezar a automatizar tus tareas web. Pero si tu objetivo es superar los desafíos de Cloudflare, especialmente su nuevo CAPTCHA de Turnstile, tendremos que dar algunos pasos adicionales. Aprovecharemos CapSolver, una API de terceros diseñada para resolver CAPTCHA como Turnstile, e integrarla con Playwright para acceder a los sitios protegidos por Cloudflare.
Paso 1: Capturando el SiteKey
El primer obstáculo que enfrentarás con Turnstile CAPTCHA es obtener el siteKey de la página web. Esta clave es esencial para que CapSolver procese el CAPTCHA y te brinde un token válido.
Puedes extraer el siteKey inspeccionando la fuente de la página web o, para facilitarte la vida, puedes usar la Extensión CapSolver. Detecta automáticamente los parámetros CAPTCHA en la página. Para obtener una guía detallada sobre cómo configurar esto, consulta nuestra publicación de blog: Identifica los parámetros de Cloudflare Turnstile.
Una vez que tengas el siteKey, estás listo para pasar al siguiente paso.
Paso 2: Llamando a la API de CapSolver para resolver el CAPTCHA
Con el siteKey en la mano, es hora de usar la API de CapSolver para resolver el CAPTCHA de Turnstile y recuperar un token válido. Este token nos permitirá eludir el desafío y continuar con nuestras tareas de raspado web o automatización.
Aquí tienes un fragmento de código de muestra que utiliza axios y Playwright para interactuar con CapSolver:
javascriptCopy
const axios = require('axios');
const playwright = require("playwright");
const api_key = "YOUR_API_KEY"; // Tu clave API de CapSolver
const site_key = "0xxxxxx"; // El siteKey que recuperaste
const site_url = "https://xxx.xxx.xxx/xxx"; // La URL del sitio web de destino
const proxy = "http://xxx:xxx@x.x.x.x:x"; // Opcional: Utiliza tu proxy si es necesario
async function solveCaptcha() {
const payload = {
clientKey: api_key,
task: {
type: 'AntiTurnstileTaskProxyLess',
websiteKey: site_key,
websiteURL: site_url,
metadata: {
action: '', // Opcional, especifica si es necesario
type: "turnstile"
}
}
};
try {
const res = await axios.post("https://api.capsolver.com/createTask", payload);
const task_id = res.data.taskId;
if (!task_id) {
console.log("Fallo al crear la tarea:", res.data);
return;
}
console.log("Tarea creada, esperando el token...");
while (true) {
await new Promise(resolve => setTimeout(resolve, 1000)); // Espera 1 segundo antes de volver a comprobar
const getResultPayload = {clientKey: api_key, taskId: task_id};
const resp = await axios.post("https://api.capsolver.com/getTaskResult", getResultPayload);
if (resp.data.status === "ready") {
console.log("CAPTCHA resuelto, token recibido:", resp.data.solution.token);
return resp.data.solution.token;
}
if (resp.data.status === "failed" || resp.data.errorId) {
console.log("¡Resolución de CAPTCHA fallida! Respuesta:", resp.data);
return;
}
}
} catch (error) {
console.error("Error al resolver CAPTCHA:", error);
}
}
En este código, creamos una tarea enviando una solicitud POST a la API de CapSolver, pasando el siteKey y la URL del sitio web al que queremos acceder. Una vez que se crea la tarea, comprobamos continuamente el estado hasta que CapSolver devuelve un token de solución. Este token es el que usaremos para demostrar a Cloudflare que somos humanos.
Paso 3: Inyectando el token CAPTCHA con Playwright
Ahora que tenemos el token CAPTCHA, necesitamos inyectarlo en la sesión como una cookie usando Playwright. Esto nos permitirá navegar por el sitio sin ser bloqueados por la protección de Cloudflare. Aquí tienes cómo hacerlo:
javascriptCopy
const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms));
async function accessSiteWithToken(){
let clearanceCookie;
// Resuelve CAPTCHA y obtén el token
await solveCaptcha().then(token => {
clearanceCookie = token;
});
const browser = await playwright.chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();
await wait(500);
// Inyecta el token como una cookie
await page.setCookie({
name: "cf_clearance",
value: clearanceCookie,
url: site_url, // Asegúrate de que esto coincida con la URL de destino
domain: "xx.xx.xx" // Ajusta el dominio según el sitio real
});
await wait(500);
// Navega al sitio web después de configurar la cookie
await page.goto(site_url);
// Ahora puedes raspar el contenido o interactuar con la página libremente
console.log("¡Acceso al sitio web correcto!");
await browser.close();
}
// Ejecuta el script para acceder al sitio
accessSiteWithToken().then();
Reflexiones finales
Cloudflare sin duda ha hecho que sea más difícil raspar sitios web o automatizar tareas en 2024, pero con herramientas como Playwright y CapSolver, el desafío está lejos de ser imposible. La capacidad de Playwright para simular interacciones reales del usuario combinada con la API de resolución de CAPTCHA de CapSolver proporciona una forma poderosa de eludir estas barreras sin sudar.
Por supuesto, siempre es una buena idea asegurarse de que te mantienes dentro de los límites de las prácticas éticas y legales de raspado. Algunos sitios web tienen políticas estrictas con respecto al acceso automatizado, así que asegúrate de conocerlas antes de proceder.
En el mundo en constante evolución de la automatización web, todo se trata de estar a la vanguardia, y con Playwright y CapSolver, estás equipado para hacer precisamente eso.
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.