Cloudflare: resolución de desafío
CONSEJO
Cree la tarea con el método createTask y obtenga el resultado con el método getTaskResult.
Nota
- El proxy es necesario, por favor use un proxy Estático o un proxy Persistente en lugar de un proxy Rotatorio.
- Soporta userAgent personalizado, por favor manténgalo igual al que está utilizando.
- Si no logra obtener la solución, su IP podría estar bloqueada, intente cambiar su proxy.
- Debe usar la librería de solicitudes TLS para solicitar el sitio web de destino.
El tipo de tarea type es el siguiente
AntiCloudflareTask
Crear Tarea
Cree la tarea con el método createTask.
Estructura del Objeto de Tarea
| Propiedades | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| type | String | Obligatorio | AntiCloudflareTask |
| websiteURL | String | Obligatorio | La dirección de la página de destino. |
| proxy | String | Obligatorio | Su proxy Estático o proxy Persistente. Aprenda Uso de proxies |
| userAgent | String | Opcional | El user-agent que utilizó para solicitar el sitio web de destino. Solo se admite el userAgent de Chrome. |
| html | String | Opcional | La respuesta de la solicitud al sitio web de destino, usualmente contiene “Just a moment…” y el código de estado es 403. Algunos sitios web requieren el HTML. |
Ejemplo de Solicitud
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiCloudflareTask",
"websiteURL": "https://www.yourwebsite.com",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36",
"html": "<!DOCTYPE html><html lang=\"en-US\"><head><title>Just a moment...</title>...",
"proxy": "ip:port:user:pass"
}
}Ejemplo de Respuesta
{
"errorId": 0,
"status": "idle",
"taskId": "df944101-64ac-468d-bc9f-41baecc3b8ca"
}
Obteniendo Resultado
Utilice el método getTaskResult para obtener los resultados de reconocimiento
Dependiendo del sitio web y del proxy, obtendrá los resultados en un intervalo de 2s a 20s.
Ejemplo de Solicitud
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json{
"clientKey": "YOUR_API_KEY",
"taskId": "df944101-64ac-468d-bc9f-41baecc3b8ca"
}Ejemplo de Respuesta
{
"errorId": 0,
"taskId": "df944101-64ac-468d-bc9f-41baecc3b8ca",
"status": "ready",
"errorCode": "",
"errorDescription": "",
"solution": {
"cookies": {
"cf_clearance": "Bcg6jNLzTVaa3IsFhtDI.e4_LX8p7q7zFYHF7wiHPo...uya1bbdfwBEi3tNNQpc"
},
"token": "Bcg6jNLzTVaa3IsFhtDI.e4_LX8p7q7zFYHF7wiHPo...uya1bbdfwBEi3tNNQpc",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
}
}Usar Solicitud SDK
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "AntiCloudflareTask",
"websiteURL": "https://www.yourwebsite.com",
"proxy": "ip:port:user:pass"
})Código de Ejemplo
# pip install requests
import requests
import time
api_key = "YOUR_API_KEY" # your api key of capsolver
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": "AntiCloudflareTask",
"websiteURL": "https://www.yourwebsite.com",
"proxy": "ip:port:user:pass"
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Failed to create task:", res.text)
return
print(f"Got taskId: {task_id} / Getting result...")
while True:
time.sleep(1) # delay
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {})
if status == "failed" or resp.get("errorId"):
print("Solve failed! response:", res.text)
return
token = capsolver()
print(token)