Hướng dẫn
Nhiệm vụ (Token)
reCAPTCHA v3

ReCaptchaV3: giải reCAPTCHA v3

MẸO

Tạo tác vụ bằng phương thức createTask và nhận kết quả bằng phương thức getTaskResult.

Các loại tác vụ types mà chúng tôi hỗ trợ:

  • ReCaptchaV3Task loại tác vụ này yêu cầu proxy của riêng bạn.
  • ReCaptchaV3EnterpriseTask loại tác vụ này yêu cầu proxy của riêng bạn.
  • ReCaptchaV3TaskProxyLess đang sử dụng proxy tích hợp của máy chủ.
  • ReCaptchaV3EnterpriseTaskProxyLess đang sử dụng proxy tích hợp của máy chủ.

Tạo tác vụ

Tạo một tác vụ bằng phương thức createTask.

Trước khi tạo một tác vụ, nếu bạn cần sử dụng mã thông báo trong các công cụ tự động hóa như playwright và puppeteer, bạn có thể cần tìm các hàm callback của chúng. Tham khảo:

Cấu trúc đối tượng tác vụ

CẢNH BÁO

Nếu bạn không biết cách đặt tham số, vui lòng sử dụng Tiện ích mở rộng CapSolver để tự động lấy các tham số cần thiết.


Nếu bạn thấy mã thông báo v3 không hợp lệ, vui lòng sử dụng Tiện ích mở rộng CapSolver để lấy cấu hình JSON và gửi cho dịch vụ khách hàng của chúng tôi để cấu hình. Sau khi cấu hình, điểm số mã thông báo sẽ được cải thiện đáng kể.

Thuộc tínhLoạiBắt buộcMô tả
typeStringBắt buộcReCaptchaV3Task
ReCaptchaV3TaskProxyLess
ReCaptchaV3EnterpriseTask
ReCaptchaV3EnterpriseTaskProxyLess
websiteURLStringBắt buộcĐịa chỉ trang web có recaptcha.
websiteKeyStringBắt buộcKhóa trang web Recaptcha.
proxyStringTùy chọnTìm hiểu Sử dụng proxy.
pageActionStringTùy chọnĐối với ReCaptchaV3: Bạn có thể tìm thấy giá trị của tham số hành động bằng cách tìm kiếm grecaptcha.execute
enterprisePayloadObjectTùy chọnĐối với phiên bản doanh nghiệp, hãy tìm kiếm grecaptcha.enterprise.render và truyền tham số s.
isSessionBoolTùy chọnChế độ phiên, khi được bật, sẽ trả về giá trị recaptcha-ca-t, được sử dụng làm cookie. Nó thường xuất hiện trong v3.

Lưu ý: Một số trang web yêu cầu giá trị recaptcha-ca-e, thường xuất hiện trong v2. Nếu giá trị này có mặt, nó sẽ tự động được trả về mà không cần cài đặt tham số bổ sung nào.
apiDomainStringTùy chọnTên miền để tải captcha. Thông thường, tham số này không cần được truyền.
http://www.google.com/
http://www.recaptcha.net/

Yêu cầu ví dụ

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
  }
}

Sau khi bạn gửi tác vụ cho chúng tôi, bạn sẽ nhận được ‘taskId’ trong phản hồi nếu thành công. Vui lòng đọc errorCode: danh sách đầy đủ các lỗi nếu bạn không nhận được id tác vụ.

Phản hồi ví dụ

{
    "errorId": 0,
    "errorCode": "",
    "errorDescription": "",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Nhận kết quả

Sau khi có taskId, bạn cần gửi taskId để truy xuất giải pháp. Cấu trúc phản hồi được giải thích trong getTaskResult.

Tùy thuộc vào tải hệ thống, bạn sẽ nhận được kết quả trong khoảng thời gian từ 1s đến 10s

Yêu cầu ví dụ

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

Phản hồi ví dụ

{
    "errorId": 0,
    "errorCode": null,
    "errorDescription": null,
    "solution": {
        "userAgent": "xxx", // Tác nhân người dùng
        "secChUa": "xxx", // Sec-Ch-Ua
        "createTime": 1671615324290, // Thời gian tạo mã thông báo
        "gRecaptchaResponse": "3AHJ......", // mã thông báo
        "recaptcha-ca-t": "AbEM......", // Một số trang web v3 có chế độ phiên. Sau khi bật isSession, tham số này sẽ được trả về và sử dụng làm cookie.
        "recaptcha-ca-e": "Abp_......" // Một số trang web v2 có tham số này, được sử dụng làm cookie. Nếu có giá trị như vậy, nó sẽ tự động được trả về.
    },
    "status": "ready"
}

Sử dụng yêu cầu SDK

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
# capsolver.api_key = "..."
solution = capsolver.solve({
    "type": "ReCaptchaV3TaskProxyLess",
    "websiteURL": "https://www.google.com",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-",
    "pageAction": "login",
})

Mã mẫu

# pip install requests
import requests
import time
 
# TODO: thiết lập cấu hình của bạn
api_key = "YOUR_API_KEY"  # khóa API của bạn cho capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-"  # khóa trang web của trang mục tiêu của bạn
site_url = "https://www.google.com"  # URL trang của trang mục tiêu của bạn
 
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'ReCaptchaV3TaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url,
            "pageAction": "login",
        }
    }
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Không tạo được tác vụ:", res.text)
        return
    print(f"Đã nhận taskId: {task_id} / Đang lấy kết quả...")
 
    while True:
        time.sleep(1)  # độ trễ
        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("Giải quyết thất bại! phản hồi:", res.text)
            return
 
 
token = capsolver()
print(token)