
Ethan Collins
Pattern Recognition Specialist

El desafío de 5 segundos de Cloudflare puede interrumpir flujos de trabajo automatizados en Python al bloquear las solicitudes iniciales. Este guía demuestra cómo manejar programáticamente el desafío de Cloudflare utilizando Python y CapSolver. Al combinar un proxy correctamente configurado, la fingerprinting TLS y la tarea AntiCloudflareTask de CapSolver, puedes obtener las cabeceras y cookies necesarias para acceder a páginas protegidas de manera confiable.
Los mecanismos de protección de Cloudflare se utilizan ampliamente para mitigar el tráfico abusivo y el acceso automatizado. Uno de los mecanismos más comunes es el desafío de 5 segundos de Cloudflare, que valida el comportamiento del navegador antes de otorgar acceso a un sitio web. Para los desarrolladores que construyen flujos de trabajo de recolección de datos, monitoreo o automatización en Python, este desafío puede resultar en respuestas 403 repetidas y en interrupciones en los pipelines.
En este artículo, recorremos un enfoque práctico basado en Python para manejar el desafío de Cloudflare. Utilizando la API de CapSolver junto con un cliente HTTP consciente de TLS, aprenderás a detectar el desafío, solicitar una solución y completar con éxito una solicitud de seguimiento verificada.
Canjear tu código de bonificación de CapSolver
¡Aumenta tu presupuesto de automatización instantáneamente!
Usa el código de bonificación CAPN al recargar tu cuenta de CapSolver para obtener un 5% adicional en cada recarga — sin límites.
Canjéalo ahora en tu Panel de control de CapSolver
.
Ejecuta los siguientes comandos para instalar los paquetes requeridos:
pip install capsolver
pip install os
pip install requests
Aquí tienes un script de ejemplo en Python para realizar la tarea:
# -*- coding: utf-8 -*-
import requests
import time
import tls_client
# TODO: Tu clave de API
API_KEY = ""
proxy = ""
# TODO: Tu URL del sitio objetivo:
page_url = ""
def call_capsolver():
data = {
"clientKey": API_KEY,
"task": {
"type": 'AntiCloudflareTask',
"websiteURL": page_url,
"proxy": proxy,
}
}
uri = 'https://api.capsolver.com/createTask'
res = requests.post(uri, json=data)
resp = res.json()
task_id = resp.get('taskId')
if not task_id:
print("no se obtuvo taskId:", res.text)
return
print('created taskId:', task_id)
while True:
time.sleep(1)
data = {
"clientKey": API_KEY,
"taskId": task_id
}
response = requests.post('https://api.capsolver.com/getTaskResult', json=data)
resp = response.json()
status = resp.get('status', '')
if status == "ready":
print("éxito => ", response.text)
return resp.get('solution')
if status == "failed" or resp.get("errorId"):
print("falló! => ", response.text)
return
def request_site(solution):
session = tls_client.Session(
client_identifier="chrome_120",
random_tls_extension_order=True
)
return session.get(
page_url,
headers=solution.get('headers'),
cookies=solution.get('cookies'),
proxy=proxy,
)
def main():
solution = {
"headers": {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"sec-fetch-site": "none",
"sec-fetch-mode": "navigate",
"sec-fetch-user": "?1",
"sec-fetch-dest": "document",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.9",
}
}
# primera solicitud (verifica tu proxy):
res = request_site(solution)
print('1. código de estado de la respuesta:', res.status_code)
if res.status_code != 403:
print("tu proxy es bueno y no recibió el desafío de Cloudflare")
return
elif 'window._cf_chl_opt' not in res.text:
print('==== proxy bloqueado ==== ')
return
# llamar a CapSolver:
solution = call_capsolver()
if not solution:
return
# segunda solicitud (verificar la solución):
res = request_site(solution)
print('2. código de estado de la respuesta:', res.status_code)
if __name__ == '__main__':
main()

Mientras tanto, si deseas probar tus scripts para características de bot, la herramienta de detección de bots de BrowserScan puede ayudarte a identificar y mejorar el comportamiento de bot en tus scripts.
Manejar los desafíos de Cloudflare en Python requiere más que una solicitud HTTP estándar. Al integrar CapSolver con un cliente con capacidad TLS y un proxy estable, los desarrolladores pueden completar programáticamente el paso de verificación de Cloudflare y continuar con los flujos de solicitud normales.
Este enfoque es especialmente útil para aplicaciones que dependen de un acceso constante a recursos protegidos por Cloudflare, como herramientas de monitoreo, servicios de agregación de datos y pipelines de pruebas automatizadas. Con una configuración adecuada y manejo de errores, el proceso puede automatizarse de extremo a extremo manteniéndose estable y escalable.
El desafío de 5 segundos de Cloudflare es un paso de verificación del navegador que comprueba si un visitante se comporta como un navegador real antes de permitir el acceso. A menudo aparece como una página intersticial temporal y puede devolver respuestas HTTP 403 a scripts automatizados.
Cloudflare evalúa las huellas dactilares TLS, el orden de las cabeceras y el comportamiento similar al de un navegador. Las bibliotecas como tls_client ayudan a emular las características TLS reales, lo cual es crítico para pasar la solicitud inicial y validar la solución devuelta por CapSolver.
Se recomienda fuertemente usar un proxy. Proxys limpios y consistentes reducen la probabilidad de bloqueo inmediato y garantizan que la solicitud para resolver el desafío y la solicitud de verificación provengan de la misma dirección IP.
CapSolver proporciona una solución que contiene cabeceras y cookies que representan una sesión de navegador verificada. Estas deben reutilizarse en solicitudes posteriores para acceder correctamente a la página objetivo.
Sí. El mismo flujo de trabajo puede integrarse en sistemas Python más grandes agregando colas de tareas, lógica de reintentos y rotación de proxies, lo que lo hace adecuado para escenarios de automatización y acceso a datos escalables.
Aprende a solucionar el error de Cloudflare 1005 acceso denegado durante el scraping de web. Descubre soluciones como proxies residenciales, fingerprinting del navegador y CapSolver para CAPTCHA. Optimiza tu extracción de datos.

Descubre cómo manejar eficazmente Cloudflare Turnstile en flujos de trabajo de IA utilizando técnicas de stealth de Playwright y CapSolver para la resolución confiable de captchas. Aprende estrategias de integración prácticas y mejores prácticas para automatización ininterrumpida.
