Cloudflare: Lösen von Turnstile
Erstellen Sie die Aufgabe mit der Methode createTask und erhalten Sie das Ergebnis mit der Methode getTaskResult.
ℹ️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
Eigenschaften | Typ | Erforderlich | Beschreibung |
---|---|---|---|
type | String | Erforderlich | AntiTurnstileTaskProxyLess |
websiteURL | String | Erforderlich | Die Adresse der Zielseite. |
websiteKey | String | Erforderlich | Turnstile Website-Schlüssel. |
metadata | Map<String,String> | Optional | Turnstile-Zusatzdaten. Turnstile-Dokumentation |
metadata.action | String | Optional | Der Wert des data-action -Attributs des Turnstile-Elements, falls vorhanden. |
metadata.cdata | String | Optional | Der 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)