Panduan
Tugas (Token)
reCAPTCHA v2

ReCaptchaV2: menyelesaikan reCAPTCHA v2

TIP

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

WARNING

Jika Anda tidak tahu cara mengatur parameter, silakan gunakan Ekstensi CapSolver untuk mendapatkan parameter yang diperlukan secara otomatis.


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.

PropertiTipeWajibDeskripsi
typeStringWajibReCaptchaV2TaskProxyLess
ReCaptchaV2EnterpriseTask
ReCaptchaV2EnterpriseTaskProxyLess
websiteURLStringWajibURL halaman web target yang memuat captcha. Sebaiknya kirimkan URL lengkap daripada hanya host.
websiteKeyStringWajibKunci situs web Recaptcha.
proxyStringOpsionalPelajari Menggunakan proxy.
pageActionStringOpsionalUntuk ReCaptchaV2, jika ada parameter sa dalam payload endpoint /anchor, harap kirimkan nilainya
recaptchaDataSValueStringOpsionalUntuk ReCaptchaV2 versi normal, jika ada parameter s dalam payload endpoint /anchor, harap kirimkan nilainya
enterprisePayloadObjectOpsionalUntuk ReCaptchaV2 versi enterprise, jika ada parameter s dalam payload endpoint /anchor, harap kirimkan nilainya
isInvisibleBoolOpsionalLewati true jika tidak ada kotak centang “Saya bukan robot” tetapi tantangan akan tetap muncul, biasanya diperlukan dalam mode v2 tak terlihat.
isSessionBoolOpsionalMode 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.
apiDomainStringOpsionalNama 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)