ReCaptchaV2: giải reCAPTCHA v2
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ợ:
ReCaptchaV2TaskProxyLess
sử dụng proxy tích hợp sẵn của máy chủ.ReCaptchaV2EnterpriseTask
loại tác vụ này yêu cầu proxy của riêng bạn.ReCaptchaV2EnterpriseTaskProxyLess
sử dụng proxy tích hợp sẵn của máy chủ.
Tạo tác vụ
Tạo tác vụ bằng phương thức createTask.
Trước khi tạo tác vụ, nếu bạn cần sử dụng token 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 phát hiện token v2 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 bộ phận 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 token 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 (điểm ≥0.9)
Thuộc tính | Kiểu | Bắt buộc | Mô tả |
---|---|---|---|
type | Chuỗi | Bắt buộc | ReCaptchaV2TaskProxyLess ReCaptchaV2EnterpriseTask ReCaptchaV2EnterpriseTaskProxyLess |
websiteURL | Chuỗi | Bắt buộc | URL của trang web đích tải captcha, tốt nhất là gửi toàn bộ URL thay vì chỉ tên miền chính. |
websiteKey | Chuỗi | Bắt buộc | Khóa trang web Recaptcha. |
proxy | Chuỗi | Tùy chọn | Tìm hiểu Sử dụng proxy. |
pageAction | Chuỗi | Tùy chọn | Đối với ReCaptchaV2, nếu có tham số sa trong tải trọng của điểm cuối /anchor , vui lòng gửi giá trị của nó |
recaptchaDataSValue | Chuỗi | Tùy chọn | Đối với phiên bản ReCaptchaV2 thông thường, nếu có tham số s trong tải trọng của điểm cuối /anchor , vui lòng gửi giá trị của nó |
enterprisePayload | Đối tượng | Tùy chọn | Đối với phiên bản ReCaptchaV2 enterprise, nếu có tham số s trong tải trọng của điểm cuối /anchor , vui lòng gửi giá trị của nó |
isInvisible | Boolean | Tùy chọn | Truyền true nếu không có hộp kiểm “Tôi không phải là người máy” nhưng thử thách vẫn sẽ xuất hiện, thường được yêu cầu ở chế độ v2 invisible. |
isSession | Boolean | 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. 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. |
apiDomain | Chuỗi | 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 mẫu
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 lỗi đầy đủ nếu bạn không nhận được ID tác vụ.
Phản hồi mẫu
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Lấy 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 mẫu
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 mẫu
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"userAgent": "xxx", // User-Agent
"secChUa": "xxx", // Sec-Ch-Ua
"createTime": 1671615324290, // The creation time of the token
"gRecaptchaResponse": "3AHJ......", // token
"recaptcha-ca-t": "AbEM......", // Some v3 websites have session mode. After enabling isSession, this parameter will be returned and used as a cookie.
"recaptcha-ca-e": "Abp_......" // Some v2 websites have this parameter, which is used as a cookie. If there is such a value, it will be automatically returned.
},
"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": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
})
Mã mẫu
# 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)