NeuroCaptcha

Typ zadania

GeeTest v3

GeeTestTaskwłasne proxy

Wystarczy wysłać parametry strony, by otrzymać gotowy token w tym samym formacie odpowiedzi co dla pozostałych typów.

Z własnym proxy: zadanie jest rozwiązywane przez przekazane proxy, więc token pasuje do adresu IP tego proxy. Dane logowania do proxy są usuwane po rozwiązaniu.

Cena

0,90 USDza 1000 zadań

0,0009 USD za zadanie

Uzyskaj klucz API

Metryki na żywo, 24 h

Metryki na żywo dla tego typu pojawią się na stronie statusu po starcie.

Parametry zadania

ParametrTypwymaganyParametry zadania
typestringwymaganyGeeTestTask
websiteURLstringwymaganyPełny URL strony z captcha.
gtstringwymaganygt GeeTest: publiczny identyfikator witryny z initGeetest.
challengestringwymaganyŚwieży challenge GeeTest dla tego zadania.
userAgentstringopcjonalnyUser-Agent używany do rozwiązania; przy wysyłaniu tokenu należy użyć tego samego.
cookiesstringopcjonalnyPliki cookie docelowej witryny w formacie key1=value1; key2=value2.
proxyTypestringwymaganyhttp, socks4 lub socks5.
proxyAddressstringwymaganyAdres IP lub host proxy (tylko adresy publiczne).
proxyPortintegerwymaganyPort proxy.
proxyLoginstringopcjonalnyLogin do proxy, jeśli wymaga ono uwierzytelnienia.
proxyPasswordstringopcjonalnyHasło do proxy. Usuwane po rozwiązaniu zadania.

Przykład

import time
import requests

API = "https://"
KEY = "YOUR_API_KEY"

# 1. create a task: the price is held, not charged
task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "GeeTestTask",
        "websiteURL": "https://example.com/login",
        "gt": "81388ea1fc187e0c335c0a8907ff2625",
        "challenge": "2e2f0f65240058b683cb6ea21c303eea",
        "proxyType": "http",
        "proxyAddress": "203.0.113.10",
        "proxyPort": 8080,
        "proxyLogin": "user",
        "proxyPassword": "pass",
    },
}).json()
if task["errorId"]:
    raise RuntimeError(task["errorCode"])

# 2. poll the result (or pass "callbackUrl" and get a signed webhook)
while True:
    time.sleep(3)
    res = requests.post(f"{API}/getTaskResult",
                        json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if res["errorId"]:
        raise RuntimeError(res["errorCode"])
    if res["status"] == "ready":
        print(res["solution"])
        break

Inne typy zadań