Anleitung
Aufgabe (Token)
Geetest

GeeTestTask: Geetest lösen

TIP

Erstellen Sie die Aufgabe mit der Methode createTask und erhalten Sie das Ergebnis mit der Methode getTaskResult.

Die von uns unterstützten Aufgabentypen types:

  • GeeTestTaskProxyLess

UNTERSTÜTZTE BILDTYPEN

TypHinweisStatus
img.pngSchiebereglerstabil
img_2.pngSymbolklickstabil
img_2.pngSymbol zertrümmernstabil
img_2.pngNeunfelderstabil
img_2.pngGobangstabil

Aufgabe erstellen

Erstellen Sie eine Aufgabe mit createTask.

Struktur des Aufgabenobjekts

EigenschaftenTypErforderlichBeschreibung
typeStringErforderlichGeeTestTaskProxyLess
websiteURLStringErforderlichWebadresse der Website, die Geetest verwendet (Bsp: https://geetest.com)
gtStringErforderlichNur für Geetest V3 erforderlich
challengeStringErforderlichNur für Geetest V3 erforderlich
captchaIdStringOptionalNur für Geetest V4 erforderlich
geetestApiServerSubdomainStringOptionalSpezielles API-Subdomain, Beispiel: api.geetest.com

Beispielanfrage

Beispielanfrage für Geetest V3

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeetestTaskProxyless",
        "websiteURL":"https://mywebsite.com/geetest/test.php",
        "gt":"",
        "challenge":"",
        "geetestApiServerSubdomain":"api.geetest.com" // Optional
    }
}

Beispielanfrage für Geetest V4

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeetestTaskProxyless",
        "websiteURL":"https://mywebsite.com/geetest/test.php",
        "captchaId": "..."
    }
}

Beispielantwort

{
    "errorId": 0,
    "status": "idle",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Ergebnis abrufen

Verwenden Sie die Methode getTaskResult, um das Ergebnis abzurufen. Abhängig von der Systemauslastung erhalten Sie das Ergebnis innerhalb eines Intervalls von 3s bis 10s.

Beispielanfrage

POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
 
{
    "clientKey":"YOU_API_KEY",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Beispielantwort

Beispielantwort für GeetestV3

{
  "errorId": 0,
  "solution": {
    "challenge": "",
    "validate": ""
  },
  "status": "ready"
}

Beispielantwort für GeetestV4

{
  "errorId": 0,
  "taskId": "e0ecaaa8-06f6-41fd-a02e-a0c79b957b15",
  "status": "ready",
  "solution": {
    "captcha_id": "",
    "captcha_output": "",
    "gen_time": "",
    "lot_number": "",
    "pass_token": "",
    "risk_type": "slide"
  }
}

SDK-Anfrage verwenden

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
capsolver.api_key = "..."
# v3
solution = capsolver.solve({
    "type": "GeeTestTaskProxyLess",
    "websiteURL": "http://mywebsite.com/geetest/test.php",
    "gt": "...",
    "challenge": "..."
})
 
# v4
solution = capsolver.solve({
    "type": "GeeTestTaskProxyLess",
    "websiteURL": "http://mywebsite.com/geetest/test.php",
    "captchaId": "..."
})

Beispielcode

# pip install requests
import requests
import time
 
api_key = "YOUR_API_KEY"  # TODO: Ihr API-Schlüssel für Capsolver
 
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'GeeTestTaskProxyLess',
            "websiteURL": "https://mywebsite.com/geetest/test.php",  # URL der Seite Ihrer Website
            "gt": "...",  # V3 ist erforderlich
            "challenge":   "...",  # V3 ist erforderlich
            "captchaId":   "...",  # V4 ist erforderlich
        }
    }
    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)  # Verzögerung
        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
 
 
solution = capsolver()
print(solution)

Hinweise

  1. Bitte nicht direkt aus dem Browser-Entwicklertool kopieren, sondern GT und Challenge bei der Anfrage abrufen.

  2. Bei einer geringen Anzahl von Fehlern beim erneuten Abrufen der Verifizierungscode-Parameter kann ein erneuter Versuch unternommen werden.

  3. Verifizierungscode-Parameter können nur einmal zur Identifizierung übermittelt werden. Übermitteln Sie nicht dieselben Parameter wiederholt zur Identifizierung, sondern müssen die Erfassung neu initialisieren.

  4. Hinweis: Wenn Sie die Website nicht passieren können, liegt dies möglicherweise an Kodierungsproblemen. Ersetzen Sie dann das CAPTCHA = Symbol durch %3D, andere Zeichen nicht kodieren, bitte beachten Sie dies.

5Parameter wie der Testserver können hier im Geetest-Dokument abgefragt werden.