Cloudflare: menyelesaikan Turnstile
Buat tugas dengan metode createTask dan dapatkan hasilnya dengan metode getTaskResult.
ℹ️ Tipe turnstile
tidak memerlukan proxy, jadi Anda cukup menggunakan AntiTurnstileTaskProxyLess
Captcha Turnstile adalah upaya lain untuk menggantikan reCaptcha. Kami secara otomatis mendukung subtipe ini:
- turnstile
- Secara Manual
- Non-Interaktif
- Tidak Terlihat
Tidak perlu menentukan subtipe selama panggilan Anda. Belum perlu untuk menyediakan User-Agent
kustom Anda sendiri,
kami akan mengabaikan parameter ini.
Tipe tugas type
adalah sebagai berikut
AntiTurnstileTaskProxyLess
Buat Tugas
Buat tugas dengan metode createTask.
Dalam proses penggunaan turnstile, kita harus memasukkan websiteURL
dan websiteKey
, parameter lain bersifat opsional.
Struktur Objek Tugas
Properti | Tipe | Wajib | Deskripsi |
---|---|---|---|
type | String | Wajib | AntiTurnstileTaskProxyLess |
websiteURL | String | Wajib | Alamat halaman target. |
websiteKey | String | Wajib | Kunci situs web Turnstile. |
metadata | Map<String,String> | Opsional | Data tambahan Turnstile. Dokumentasi Turnstile |
metadata.action | String | Opsional | Nilai atribut data-action dari elemen Turnstile jika ada. |
metadata.cdata | String | Opsional | Nilai atribut data-cdata dari elemen Turnstile jika ada. |
Contoh Permintaan
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", //opsional
"cdata": "0000-1111-2222-3333-example-cdata" //opsional
}
}
}
Contoh Respon
{
"errorId": 0,
"status": "idle",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" // catat taskId
}
Mendapatkan Hasil
Gunakan metode getTaskResult untuk mendapatkan hasil pengenalan
Tergantung pada beban sistem, Anda akan mendapatkan hasilnya dalam interval 1s
hingga 20s
Contoh Permintaan
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Contoh Respon
{
"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"
}
}
Gunakan Permintaan SDK
# 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" # opsional
}
})
Contoh Kode
# pip install requests
import requests
import time
api_key = "YOUR_API_KEY" # kunci API capsolver Anda
site_key = "0x4XXXXXXXXXXXXXXXXX" # kunci situs target Anda
site_url = "https://www.yourwebsite.com" # URL halaman situs target Anda
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'AntiTurnstileTaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url,
"metadata": {
"action": "" # opsional
}
}
}
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) # tunda
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)