GeeTestTask: giải Geetest
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.
Loại tác vụ types
mà chúng tôi hỗ trợ:
GeeTestTaskProxyLess
HỖ TRỢ CÁC LOẠI ẢNH
Loại | Ghi chú | Trạng thái |
---|---|---|
![]() | trượt | ổn định |
![]() | nhấp biểu tượng | ổn định |
![]() | va chạm biểu tượng | ổn định |
![]() | chín ô | ổn định |
![]() | cờ vây | ổn định |
Tạo tác vụ
Tạo một tác vụ với createTask để tạo một tác vụ.
Cấu trúc đối tượng tác vụ
Thuộc tính | Loại | Bắt buộc | Mô tả |
---|---|---|---|
type | Chuỗi | Bắt buộc | GeeTestTaskProxyLess |
websiteURL | Chuỗi | Bắt buộc | Địa chỉ web của trang web sử dụng geetest (Ví dụ: https://geetest.com) |
gt | Chuỗi | Bắt buộc | Chỉ Geetest V3 là bắt buộc |
challenge | Chuỗi | Bắt buộc | Chỉ Geetest V3 là bắt buộc |
captchaId | Chuỗi | Tùy chọn | Chỉ Geetest V4 là bắt buộc |
geetestApiServerSubdomain | Chuỗi | Tùy chọn | Tên miền phụ api đặc biệt, ví dụ: api.geetest.com |
Ví dụ yêu cầu
Ví dụ yêu cầu sử dụng Geetest V3
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type":"GeetestTaskProxyless",
"websiteURL":"https://mywebsite.com/geetest/test.php",
"gt":"",
"challenge":"",
"geetestApiServerSubdomain":"api.geetest.com" // Tùy chọn
}
}
Ví dụ yêu cầu sử dụng Geetest V4
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type":"GeetestTaskProxyless",
"websiteURL":"https://mywebsite.com/geetest/test.php",
"captchaId": "..."
}
}
Ví dụ phản hồi
{
"errorId": 0,
"status": "idle",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Lấy kết quả
Sử dụng getTaskResult để lấy kết quả, 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ừ 3s
đến 10s
Ví dụ yêu cầu
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey":"YOU_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Ví dụ phản hồi
Ví dụ phản hồi sử dụng GeetestV3
{
"errorId": 0,
"solution": {
"challenge": "",
"validate": ""
},
"status": "ready"
}
Ví dụ phản hồi sử dụng GeetestV4
{
"errorId": 0,
"taskId": "e0ecaaa8-06f6-41fd-a02e-a0c79b957b15",
"status": "ready",
"solution": {
"captcha_id": "",
"captcha_output": "",
"gen_time": "",
"lot_number": "",
"pass_token": "",
"risk_type": "slide"
}
}
Sử dụng yêu cầu SDK
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
capsolver.api_key = "..."
# v3
solution = capsolver.solve({
"type": "GeeTestTaskProxyLess",
"websiteURL": "http://mywebsite.com/geetest/test.php",
"gt": "...",
"challenge": "..."
})
# v4
solution = capsolver.solve({
"type": "GeeTestTaskProxyLess",
"websiteURL": "http://mywebsite.com/geetest/test.php",
"captchaId": "..."
})
Mã mẫu
# pip install requests
import requests
import time
api_key = "YOUR_API_KEY" # TODO: khóa api capsolver của bạn
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'GeeTestTaskProxyLess',
"websiteURL": "https://mywebsite.com/geetest/test.php", # url trang của bạn
"gt": "...", # v3 là bắt buộc
"challenge": "...", # v3 là bắt buộc
"captchaId": "...", # v4 là bắt buộc
}
}
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 thể tạo 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")
if status == "failed" or resp.get("errorId"):
print("Giải thất bại! phản hồi:", res.text)
return
solution = capsolver()
print(solution)
Các điểm cần lưu ý
-
Vui lòng không sao chép trực tiếp từ công cụ dành cho nhà phát triển của trình duyệt, mà hãy LẤY GT và challenge theo yêu cầu.
-
Một số lỗi nhỏ khi yêu cầu lại các tham số mã xác minh có thể thử lại.
-
Các tham số mã xác minh chỉ có thể được gửi để xác định một lần, không lặp lại cùng các tham số đã gửi để xác định, cần khởi tạo lại việc thu thập.
-
Lưu ý: Nếu bạn không thể vượt qua trang web có thể do vấn đề về mã hóa, thì ký hiệu
=
trong CAPTCHA bằng cách thay thế bằng %3D, các ký hiệu khác không có mã hóa, vui lòng lưu ý điều này. -
Các tham số như máy chủ thử nghiệm có thể được truy vấn tại đây trong tài liệu Geetest.