ReCaptchaV3: giải reCAPTCHA v3
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ụ
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.
- Bài viết tham khảo: Cách phát hiện bất kỳ Captcha nào và trích xuất các tham số của nó
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ể.
- Bài viết tham khảo: Cách giải reCAPTCHA v2, invisible v2, v3, v3 Enterprise ≥0.9 điểm)
Thuộc tính | Loại | Bắt buộc | Mô tả |
---|---|---|---|
type | String | Bắt buộc | ReCaptchaV3Task ReCaptchaV3TaskProxyLess ReCaptchaV3EnterpriseTask ReCaptchaV3EnterpriseTaskProxyLess |
websiteURL | String | Bắt buộc | Địa chỉ trang web có recaptcha. |
websiteKey | String | Bắt buộc | Khóa trang web Recaptcha. |
proxy | String | Tùy chọn | Tìm hiểu Sử dụng proxy. |
pageAction | String | Tù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 |
enterprisePayload | Object | Tù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. |
isSession | Bool | Tùy chọn | Chế độ 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. |
apiDomain | String | Tùy chọn | Tê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)