Cómo saltar un captcha para automatización y pruebas legítimas
Saltar un captcha de forma legítima significa que tu trabajo automatizado supere un desafío sin incumplir las reglas del sitio ni atacar a sus usuarios. En la práctica, eso cubre cuatro casos: automatizar un flujo de trabajo que es tuyo, probar tu propio sitio, crear herramientas accesibles y recopilar datos públicos a un ritmo responsable. La vía honesta y más rápida suele ser evitar que el captcha se dispare. Cuando no puedes evitarlo, una API de resolución como Scarnox puede devolver el token que la página espera.
Esta guía expone los enfoques en el orden en que conviene probarlos, y marca los límites que no debes cruzar.
Empieza por preguntarte por qué apareció el captcha
Los captchas son una señal. El sitio decidió que una petición parecía automatizada o arriesgada. Antes de intentar superar el desafío, revisa qué lo causó:
- Frecuencia de peticiones. Muchos captchas aparecen solo después de una ráfaga de peticiones desde una misma dirección.
- Falta de estado de sesión. Un visitante que llega sin cookies, sin historial y sin inicio de sesión parece un scraper.
- Señales del navegador. Los navegadores headless y los ajustes de automatización por defecto suelen marcarse. La guía de detección de navegadores headless explica las más comunes.
- Reputación de red. Las direcciones de centros de datos se escrutan más que las conexiones domésticas.
Corregir la causa a menudo elimina el captcha por completo, lo cual es mejor que resolverlo en cada petición.
Prueba primero los enfoques que evitan el desafío
- Usa una API oficial si existe. Muchos sitios publican datos mediante una API con sus propias claves y límites. Esa vía es más rápida, más estable y claramente permitida.
- Ve más despacio y reparte las peticiones. Añade pausas entre peticiones, limita la concurrencia y retrocede cuando recibas una advertencia. Un ritmo constante de unas pocas peticiones por minuto se ve muy distinto para un sitio que una ráfaga de cientos.
- Mantén las sesiones. Reutiliza cookies y un perfil de navegador coherente durante una sesión, en lugar de empezar de cero en cada página. La guía sobre huella digital del navegador explica por qué esto importa.
- Revisa robots.txt y los términos de servicio antes de empezar, no después de que te bloqueen. Respeta lo que pide el sitio.
Usa claves de prueba y entornos de prueba
Si el captcha bloquea tu entorno de staging, no apuntes tus pruebas a producción para saltarlo. La mayoría de los proveedores de captcha, incluidos Google y Cloudflare, publican claves de prueba para desarrollo. Estas claves generan un token válido sin un desafío real, y son la herramienta correcta para las pruebas automatizadas. También puedes pedir a tu equipo que desactive el captcha en el servidor de staging. La guía de captchas en pruebas automatizadas explica esta configuración paso a paso.
Resuelve el captcha mediante una API cuando aparece en un trabajo legítimo
Algunos captchas seguirán apareciendo en un trabajo legítimo, incluso con un buen ritmo. Un trabajo de monitorización que revisa el portal de tu proveedor es un ejemplo. En ese caso, una API de resolución es la herramienta adecuada.
Scarnox es una API para resolver captchas. Hoy el único tipo de tarea en vivo es PopularCaptcha, sin proxy. Tu código envía la sitekey y la URL de la página, y recibe un token para enviarlo con el formulario:
import requests
r = requests.post(
"https://api.scarnox.com/api/tasks/create",
headers={"Authorization": "Bearer scarnox_YOURAPIKEY"},
json={
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/login",
},
timeout=185,
)
data = r.json()
token = data["solution"]["token"] if data.get("errorId") == 0 else None
El token caduca en unos dos minutos, así que envíalo de inmediato. La guía para resolver captchas con Python tiene el ejemplo completo. Otros tipos de captcha, incluidos reCAPTCHA, Cloudflare Turnstile y Arkose, están próximamente. Hasta que se publiquen, no des por hecho que un solver los gestiona.
La accesibilidad también es un motivo legítimo
Los captchas son una barrera para las personas que usan lectores de pantalla, cambian de dispositivo o tienen discapacidades cognitivas o visuales. Si desarrollas herramientas de accesibilidad, o actúas en nombre de usuarios que no pueden completar un desafío, el primer paso correcto es pedir al titular del sitio una alternativa accesible. Muchos sitios la ofrecen. Automatizar un captcha no sustituye esa conversación.
Lo que no es legítimo
Algunos usos de la resolución de captchas quedan fuera de los límites, sea cual sea el motivo alegado. No uses solvers ni ningún tipo de evasión para:
- el credential stuffing o cualquier intento de iniciar sesión en cuentas que no son tuyas;
- registros de spam, reseñas falsas o cuentas falsas;
- comprar entradas, stock o bienes limitados antes que otros clientes;
- atacar formularios de inicio de sesión, flujos de restablecimiento de contraseña o límites de frecuencia de un servicio ajeno.
Estos usos dañan a personas reales, incumplen los términos de los sitios y te exponen a un riesgo legal serio. Scarnox no los admite, y esta guía no los cubre.
Scrapea de forma responsable
Si tu evasión existe para recopilar datos públicos, ten en cuenta estos puntos:
- Revisa el robots.txt y los términos del sitio. Un sitio que prohíbe el scraping ya te ha dicho lo que espera.
- Establece un límite de frecuencia razonable y retrocede ante errores. Sobrecargar un sitio pequeño es un daño real.
- No recopiles datos personales que no necesitas. Los datos personales están sujetos a leyes como el RGPD, y recopilarlos sin cuidado genera responsabilidad. La guía sobre si el web scraping es legal explica las consideraciones principales.
Resumen
Evita primero el captcha corrigiendo la causa. Usa claves de prueba para las pruebas. Usa una API de resolución para trabajos legítimos que aun así encuentren un desafío, dentro de los tipos de tarea en vivo. Mantente al margen de los usos enumerados arriba, y scrapea a un ritmo que el sitio pueda soportar.