AwsWafCaptcha: giải AWS WAF
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ợ:
AntiAwsWafTask
loại tác vụ này yêu cầu proxy của riêng bạn.AntiAwsWafTaskProxyLess
loại tác vụ này không yêu cầu proxy của riêng bạn.
Tạo tác vụ
Tạo một tác vụ nhận diện bằng phương thức createTask.
Cấu trúc đối tượng tác vụ
Thuộc tính | Loại | Bắt buộc | Mô tả |
---|---|---|---|
type | String | Bắt buộc | AntiAwsWafTask AntiAwsWafTaskProxyLess |
proxy | String | Tùy chọn | Tìm hiểu Cách sử dụng proxy |
websiteURL | String | Bắt buộc | URL của trang trả về thông tin liên quan đến captcha |
awsKey | String | Tùy chọn | Giá trị key được trả về bởi trang captcha |
awsIv | String | Tùy chọn | Giá trị iv được trả về bởi trang captcha |
awsContext | String | Tùy chọn | Giá trị context được trả về bởi trang captcha |
awsChallengeJS | String | Tùy chọn | Liên kết challenge.js được trả về bởi trang captcha |
awsApiJs | String | Tùy chọn | Liên kết jsapi.js được trả về bởi trang captcha |
awsProblemUrl | String | Tùy chọn | URL điểm cuối problem chứa các từ khóa như problem , num_solutions_required , v.v. |
awsApiKey | String | Tùy chọn | Giá trị api_key của điểm cuối problem |
awsExistingToken | String | Tùy chọn | aws-waf-token được sử dụng cho lần xác minh cuối cùng |
Nếu bạn không chắc chắn về các tham số cần truyền cho capsolver, vui lòng tham khảo các trường hợp sau đây cho các kết hợp tham số khác nhau. Nếu tình huống của bạn không được đề cập, vui lòng liên hệ với bộ phận chăm sóc khách hàng của chúng tôi để được hỗ trợ.
Tình huống | Truyền tham số | Điều kiện tiên quyết |
---|---|---|
Tình huống 1 | websiteURL | Mã phản hồi của trang aws captcha có thể là 405, và các tham số sau có thể được tìm thấy trong html:window.gokuProps = {"key":"AQID...","iv":"A6we...","context":"rGXm.."} |
Tình huống 2 | websiteURL awsKey awsIv awsContext awsChallengeJS | Với tiền đề của tình huống 1, nếu capsolver trả về thông báo lỗi:Captcha render unexpect status code XXX, please pass in the awsKey, awsIv, awsContext and awsChallengeJs parameters , điều đó cho thấy máy chủ không kích hoạt captcha. Vui lòng phân tích cú pháp thủ công các tham số key, iv và context và truyền chúng cho capsolver.Lưu ý đặc biệt Nếu bạn nhận được thông báo lỗi cho biết timeout metering, your parameters have expired, please update awsKey, awsIv, awsContext or awsChallengeJS. , điều đó cho thấy bốn tham số bạn cung cấp không tương ứng với nhau hoặc đã hết hạn. Bạn nên phân tích cú pháp tất cả các tham số theo thời gian thực cho mỗi yêu cầu. |
Tình huống 3-1 | websiteURL awsChallengeJS | Khi trang không tìm thấy key, iv, context, nhưng có challenge.js, hãy truyền challenge.js cho capsolver làm giá trị của awsChallengeJS. |
Tình huống 3-2 | websiteURL awsApiJs | Dựa trên tình huống 3-1, nếu không rõ challenge.js đến từ đâu, nhưng trang có jsapi.js, điều đó có nghĩa là challenge.js được lắp ráp từ mã của jsapi.js, thì jsapi.js có thể được truyền trực tiếp cho capsolver làm giá trị của awsApiJs. |
Tình huống 4 | websiteURL awsProblemUrl | Trong các trường hợp đặc biệt, khi trang không tìm thấy key, iv, context, challenge.js, và chỉ có captcha.js, bạn cần truyền url điểm cuối problem cho capsolver. awsProblemUrl nên chứa các giá trị như problem và num_solutions_required . Các giá trị này có thể được tìm thấy bằng cách tìm kiếm visualSolutionsRequired trong html của trang. Ví dụ hoàn chỉnh về awsProblemUrl: https://ait.2608283a.us-east-1.captcha.awswaf.com/ait/ait/ait/problem?kind=visual&domain=www.amazon.com&locale=en-us&problem=gridcaptcha-5-0.15-0&num_solutions_required=2 |
Tình huống 5 | websiteURL awsApiKey awsApiJs awsExistingToken | Điều này thường xảy ra trong các tình huống yêu cầu xác minh thứ cấp. Điểm cuối problem chứa api_key (có giá trị thường không đổi cho mỗi trang web) làm awsApiKey . Trang có jsapi.js làm awsApiJs , và aws-waf-token từ lần xác minh trước được truyền cho capsolver làm awsExistingToken |
Ví dụ yêu cầu
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiAwsWafTask", // AntiAwsWafTaskProxyLess
"websiteURL": "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest", // Required
"awsKey": "AQIDAHjcYu/GjX+QlghicBg......shMIKvZswZemrVVqA==", // Optional
"awsIv": "CgAAFDIlckAAAAid", // Optional
"awsContext": "7DhQfG5CmoY90ZdxdHCi8WtJ3z......njNKULdcUUVEtxTk=", // Optional
"awsChallengeJS": "https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb......a6c832/challenge.js", // Optional
"awsApiJs": "https://9175c2fd4189.edge.captcha-sdk.awswaf.com/9175c2fd4189/jsapi.js", // Optional
"awsProblemUrl": "https://ait...awswaf.com/ait/ait/ait/problem?kind=visual&...&problem=gridcaptcha-5-0.1-0&num_solutions_required=2", // Optional
"awsApiKey": "Sps+L2gV...", // Optional
"awsExistingToken": "5na16dg6-216a-...", // Optional
"proxy": "http:ip:port:user:pass" // socks5:ip:port:user:pass
}
}
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ụ.
Để biết thêm thông tin, bạn có thể
tham khảo bài viết blog này Cách giải quyết mã thông báo captcha của AWS Amazon
Ví dụ phản hồi
{
"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ừ 5 giây
đến 30 giây
Ví dụ yêu cầ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"
}
Ví dụ phản hồi
{
"errorId": 0,
"taskId": "646825ef-9547-4a29-9a05-50a6265f9d8a",
"status": "ready",
"solution": {
"cookie": "223d1f60-0e9f-4238-ac0a-e766b15a778e:EQoAf0APpGIKAAAA:AJam3OWpff1VgKIJxH4lGMMHxPVQ0q0R3CNtgcMbR4VvnIBSpgt1Otbax4kuqrgkEp0nFKanO5oPtwt9+Butf7lt0JNe4rZQwZ5IrEnkXvyeZQPaCFshHOISAFLTX7AWHldEXFlZEg7DjIc="
}
}
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": "AntiAwsWafTask",
"websiteURL": "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest",
"proxy": "ip:port:user:pass"
})
Mã mẫu
# pip install requests
import requests
import time
api_key = "YOUR_API_KEY" # TODO: your api key of capsolver
site_url = "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest" # TODO: page url of your site
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'AntiAwsWafTaskProxyLess',
"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('cookie')
if status == "failed" or resp.get("errorId"):
print("Solve failed! response:", res.text)
return
token = capsolver()
print(token)