fix: 增加最大轮询尝试次数以提高任务结果获取的成功率

This commit is contained in:
晓丰 2025-05-31 04:54:49 +08:00
parent 3a80b9ce9e
commit 7bfd9d8181

View File

@ -251,7 +251,7 @@ def solve_recaptcha_v3_with_proxy(
keyword: str,
max_task_retries: int = 3,
polling_interval: float = 3,
max_poll_attempts: int = 5
max_poll_attempts: int = 10
) -> str:
create_url = "https://api.capsolver.com/createTask"
result_url = "https://api.capsolver.com/getTaskResult"
@ -274,15 +274,17 @@ def solve_recaptcha_v3_with_proxy(
}
}
resp = requests.post(create_url, json=payload, headers=headers, timeout=30)
logger.info(f"[token] 发送 payload:{payload}")
resp.raise_for_status()
task_id = resp.json()["taskId"]
logger.info(f"task_id: {task_id}")
# 轮询获取结果
check_payload = {"clientKey": "CAP-A76C932D4C6CCB3CA748F77FDC07D996", "taskId": task_id}
for _ in range(max_poll_attempts):
for i in range(max_poll_attempts):
r = requests.post(result_url, json=check_payload, headers=headers, timeout=10)
r.raise_for_status()
result = r.json()
logger.info(f"{i}次,task_id:{task_id},结果:{result}")
if result.get("status") == "ready":
return result["solution"]["token"]
time.sleep(polling_interval)