· 2 years ago · Nov 16, 2022, 10:30 AM
1APIKEY = ...
2API = ...
3
4
5def solve_captcha(url, key, proxy="", ua=""):
6 data = {
7 "clientKey": APIKEY,
8 "task": {
9 "type": "HCaptchaTaskProxyless" if not proxy else "HCaptchaTask",
10 "websiteURL": url,
11 "websiteKey": key,
12 "userAgent": ua,
13 "isInvisible": False,
14 },
15 "softId": 0,
16 }
17
18 r = requests.post(API + "createTask", json=data)
19 r_json = r.json()
20 check_error(r_json)
21 task_id: int = r_json["taskId"]
22 data = {
23 "clientKey": APIKEY,
24 "taskId": task_id,
25 }
26 started = time.time()
27 while time.time() - started < CAPTCHA_TIMEOUT:
28 r = requests.post(API + "getTaskResult", json=data)
29 r_json = r.json()
30 check_error(r_json)
31 if r_json["status"] == "ready":
32 return r_json["solution"]["gRecaptchaResponse"]
33 time.sleep(1)
34 raise TimeoutError("Captcha solving timeout")