C¨®mo solucionar Cloudflare con Playwright en 2024
Alo¨ªsio V¨ªtor
Image Processing Expert
10-Sep-2024
?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:[email protected]: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.