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.

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ể.

Phiên bản nhiệm vụ cao (M1)

M1 là loại nhiệm vụ được đánh giá cao cho reCAPTCHA v3. Nó đắt hơn nhiều so với phiên bản tiêu chuẩn.

  • Vui lòng liên hệ với chúng tôi trước khi sử dụng M1
  • Cần điều chỉnh cho các trang web cụ thể
  • Có thể chỉ hoạt động tốt trên một số trang web

Bảng giá

phiên bảnLoại nhiệm vụgiá cả
Phiên bản tiêu chuẩn V3ReCaptchaV3Task
ReCaptchaV3TaskProxyLess
$1/k
Phiên bản doanh nghiệp V3ReCaptchaV3EnterpriseTask
ReCaptchaV3EnterpriseTaskProxyLess
$3/k
Điểm cao tiêu chuẩn M1ReCaptchaV3M1Task
ReCaptchaV3M1TaskProxyLess
$3/k
Điểm cao cho phiên bản doanh nghiệp M1ReCaptchaV3EnterpriseM1Task
ReCaptchaV3EnterpriseM1TaskProxyLess
$10/k
Loại nhiệm vụ M1 là loại nhiệm vụ chi phí cao. Vui lòng xác nhận giá cả và nhu cầu phù hợp với dịch vụ khách hàng trước khi sử dụng nó cho sản xuất.
Thuộc tínhLoạiBắt buộcMô tả
typeStringBắt buộcPhiên bản tiêu chuẩn
ReCaptchaV3Task
ReCaptchaV3TaskProxyLess
ReCaptchaV3EnterpriseTask
ReCaptchaV3EnterpriseTaskProxyLess

Phiên bản High Point (M1)
ReCaptchaV3M1Task
ReCaptchaV3M1TaskProxyLess
ReCaptchaV3EnterpriseM1Task
ReCaptchaV3EnterpriseM1TaskProxyLess
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)