ReCaptchaV2: menyelesaikan reCAPTCHA v2
Buat tugas dengan metode createTask dan dapatkan hasilnya dengan metode getTaskResult.
Tipe tugas types
yang kami dukung:
ReCaptchaV2TaskProxyLess
menggunakan proxy bawaan server.ReCaptchaV2EnterpriseTask
tipe tugas ini memerlukan proxy Anda sendiri.ReCaptchaV2EnterpriseTaskProxyLess
menggunakan proxy bawaan server.
Buat Tugas
Buat tugas dengan metode createTask.
Sebelum membuat tugas, jika Anda perlu menggunakan token dalam alat otomatisasi seperti playwright dan puppeteer, Anda mungkin perlu menemukan fungsi callback-nya. Referensi:
Struktur Objek Tugas
Jika Anda tidak tahu cara mengatur parameter, silakan gunakan Ekstensi CapSolver untuk mendapatkan parameter yang diperlukan secara otomatis.
- Artikel referensi: Cara mendeteksi Captcha apa pun dan mengekstrak parameternya
Jika Anda menemukan bahwa token v2 tidak valid, silakan gunakan Ekstensi CapSolver untuk mendapatkan konfigurasi JSON dan mengirimkannya ke layanan pelanggan kami untuk konfigurasi. Setelah konfigurasi, ini akan sangat meningkatkan skor token.
- Artikel referensi: Cara menyelesaikan reCAPTCHA v2, invisible v2, v3, v3 Enterprise ≥0.9 skor)
Properti | Tipe | Wajib | Deskripsi |
---|---|---|---|
type | String | Wajib | ReCaptchaV2TaskProxyLess ReCaptchaV2EnterpriseTask ReCaptchaV2EnterpriseTaskProxyLess |
websiteURL | String | Wajib | URL halaman web target yang memuat captcha. Sebaiknya kirimkan URL lengkap daripada hanya host. |
websiteKey | String | Wajib | Kunci situs web Recaptcha. |
proxy | String | Opsional | Pelajari Menggunakan proxy. |
pageAction | String | Opsional | Untuk ReCaptchaV2, jika ada parameter sa dalam payload endpoint /anchor , harap kirimkan nilainya |
recaptchaDataSValue | String | Opsional | Untuk ReCaptchaV2 versi normal, jika ada parameter s dalam payload endpoint /anchor , harap kirimkan nilainya |
enterprisePayload | Object | Opsional | Untuk ReCaptchaV2 versi enterprise, jika ada parameter s dalam payload endpoint /anchor , harap kirimkan nilainya |
isInvisible | Bool | Opsional | Lewati true jika tidak ada kotak centang “Saya bukan robot” tetapi tantangan akan tetap muncul, biasanya diperlukan dalam mode v2 tak terlihat. |
isSession | Bool | Opsional | Mode sesi, ketika diaktifkan, akan mengembalikan nilai recaptcha-ca-t , yang digunakan sebagai cookie. Ini biasanya muncul di v3.Catatan: Beberapa situs web memerlukan nilai recaptcha-ca-e , yang biasanya muncul di v2. Jika nilai ini ada, nilai tersebut akan otomatis dikembalikan tanpa pengaturan parameter tambahan. |
apiDomain | String | Opsional | Nama domain untuk memuat captcha. Biasanya, parameter ini tidak perlu dilewatkan. • http://www.google.com/ • http://www.recaptcha.net/ |
Contoh Permintaan
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV2Task",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN" // Optional
},
"isInvisible": false, // Optional
"pageAction": "submit", // Optional
"apiDomain": "", // Optional
"proxy": "http:ip:port:user:pass", // socks5:ip:port:user:pass, Optional
}
}
Setelah Anda mengirimkan tugas kepada kami, Anda akan menerima ‘taskId’ dalam respons jika berhasil. Harap baca errorCode: daftar lengkap kesalahan jika Anda tidak menerima ID tugas.
Contoh Respons
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Mendapatkan Hasil
Setelah Anda memiliki taskId, Anda perlu mengirimkan taskId untuk mengambil solusi. Struktur respons dijelaskan dalam getTaskResult.
Tergantung pada beban sistem, Anda akan mendapatkan hasilnya dalam interval 1s
hingga 10s
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 Respons
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"userAgent": "xxx", // User-Agent
"secChUa": "xxx", // Sec-Ch-Ua
"createTime": 1671615324290, // Waktu pembuatan token
"gRecaptchaResponse": "3AHJ......", // token
"recaptcha-ca-t": "AbEM......", // Beberapa situs web v3 memiliki mode sesi. Setelah mengaktifkan isSession, parameter ini akan dikembalikan dan digunakan sebagai cookie.
"recaptcha-ca-e": "Abp_......" // Beberapa situs web v2 memiliki parameter ini, yang digunakan sebagai cookie. Jika nilai ini ada, nilai tersebut akan otomatis dikembalikan.
},
"status": "ready"
}
Menggunakan Permintaan SDK
#pip install --upgrade capsolver
#export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
})
Contoh Kode
# pip install requests
import requests
import time
# TODO: set your config
api_key = "YOUR_API_KEY" # your api key of capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # site key of your target site
site_url = "https://www.google.com/recaptcha/api2/demo" # page url of your target site
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
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('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("Solve failed! response:", res.text)
return
token = capsolver()
print(token)