Anleitung
Aufgabe (Token)
Cloudflare Turnstile

Cloudflare: Lösen von Turnstile

TIP

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

DANGER

ℹ️Der Typ turnstile erfordert keinen Proxy, daher verwenden Sie einfach AntiTurnstileTaskProxyLess

Das Turnstile-Captcha ist ein weiterer Versuch, reCaptcha zu ersetzen. Wir unterstützen automatisch die folgenden Untertypen:

  • turnstile
    • Manuell
    • Nicht-Interaktiv
    • Unsichtbar

Es ist nicht notwendig, Untertypen während Ihres Aufrufs anzugeben. Es ist noch nicht erforderlich, einen eigenen User-Agent bereitzustellen, wir werden diesen Parameter ignorieren.

Der Aufgabentyp type ist wie folgt

  • AntiTurnstileTaskProxyLess

Aufgabe erstellen

Erstellen Sie die Aufgabe mit createTask.

Bei der Verwendung von Turnstile müssen wir websiteURL und websiteKey eingeben; andere Parameter sind optional.

Aufgabenobjekt-Struktur

EigenschaftenTypErforderlichBeschreibung
typeStringErforderlichAntiTurnstileTaskProxyLess
websiteURLStringErforderlichDie Adresse der Zielseite.
websiteKeyStringErforderlichTurnstile Website-Schlüssel.
metadataMap<String,String>OptionalTurnstile-Zusatzdaten. Turnstile-Dokumentation
metadata.actionStringOptionalDer Wert des data-action-Attributs des Turnstile-Elements, falls vorhanden.
metadata.cdataStringOptionalDer Wert des data-cdata-Attributs des Turnstile-Elements, falls vorhanden.

Beispielanfrage

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "AntiTurnstileTaskProxyLess",
    "websiteURL": "https://www.yourwebsite.com",
    "websiteKey": "0x4XXXXXXXXXXXXXXXXX",
    "metadata": {
       "action": "login",  //optional
       "cdata": "0000-1111-2222-3333-example-cdata"  //optional
    }
  }
}

Beispielantwort

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

Ergebnis abrufen

Verwenden Sie die Methode getTaskResult, um die Erkennungsergebnisse zu erhalten.

Je nach Systemlast erhalten Sie die Ergebnisse innerhalb eines Intervalls von 1s bis 20s.

Beispielanfrage

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

Beispielantwort

{
  "errorId": 0,
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006",
  "status": "ready",
  "errorCode": null,
  "errorDescription": null,
  "solution": {
    "token": "0.mF74FV8wEufAWOdvOak_xFaVy3lqIDel7SwNhw3GgpICSWwTjYfrQB8mRT1dAJJBEoP7N1sESdp6WH9cTS1T0catWLecG3ayNcjwxVtr3hWfS-dmcBGRTx4xYwI64sAVboYGpIyuDBeMIRC3W8dK35v1nDism9xa595Da5VlXKM7hk7pIXg69lodfiftasIkyD_KUGkxBwxvrmz7dBo10-Y5zvro9hD4QKRjOx7DYj9sumnkyYCDx0m4ImDIIkNswfVTWI2V22wlnpHdvMgdtKYgOIIAU28y9gtdrdDkpkH0GHcDyd15sxQGd9VjwhGZA_mpusUKMsEoGgst2rJ3zA.UWfZupqLlGvlATkPo3wdaw.38d55cd0163610d8ce8c42fcff7b62d8981495cc1afacbb2f14e5a23682a4e13",
    "type": "turnstile",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
  }
}

SDK-Anfrage verwenden

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
# capsolver.api_key = "..."
solution = capsolver.solve({
  "type": "AntiTurnstileTaskProxyLess",
  "websiteURL": "https://www.yourwebsite.com",
  "websiteKey": "0x4XXXXXXXXXXXXXXXXX",
  "metadata": {
	 "action": "login"  # optional
  }
})

Beispielcode

# pip install requests
import requests
import time
 
api_key = "YOUR_API_KEY"  # your api key of capsolver
site_key = "0x4XXXXXXXXXXXXXXXXX"  # site key of your target site
site_url = "https://www.yourwebsite.com"  # page url of your target site
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'AntiTurnstileTaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url,
            "metadata": {
                "action": ""  # optional
            }
        }
    }
    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", {}).get('token')
        if status == "failed" or resp.get("errorId"):
            print("Solve failed! response:", res.text)
            return
 
token = capsolver()
print(token)