AwsWafCaptcha: Giải quyết AWS WAF
Tạo nhiệm vụ bằng cách sử dụng phương pháp createTask và nhận kết quả bằng cách sử dụng phương pháp getTaskResult.
Chúng tôi hỗ trợ các loại nhiệm vụ sau:
AntiAwsWafTask
- Loại nhiệm vụ này yêu cầu bạn sử dụng proxy của riêng bạn.AntiAwsWafTaskProxyLess
- Loại nhiệm vụ này không yêu cầu bạn sử dụng proxy của riêng bạn.
Tạo Nhiệm Vụ
Tạo nhiệm vụ nhận diện bằng cách sử dụng phương pháp createTask.
Cấu trúc Đối tượng Nhiệm vụ
Thuộc tính | Kiểu | Bắt buộc | Mô tả |
---|---|---|---|
type | String | Required | AntiAwsWafTask AntiAwsWafTaskProxyLess |
proxy | String | Required | Tìm hiểu cách sử dụng proxy |
websiteURL | String | Required | Quay lại URL trang của captcha cho thông tin liên quan |
awsKey | String | Optional | Giá trị key được trả về bởi trang captcha |
awsIv | String | Optional | Giá trị iv được trả về bởi trang captcha |
awsContext | String | Optional | Giá trị context được trả về bởi trang captcha |
awsChallengeJS | String | Optional | Liên kết challenge.js được trả về bởi trang captcha |
awsApiJs | String | Optional | Liên kết jsapi.js được trả về bởi trang captcha |
awsProblemUrl | String | Optional | problem giao diện url chứa các từ khóa như problem , num_solutions_required |
awsApiKey | String | Optional | giá trị api_key của giao diện `problem |
awsExistingToken | String | Optional | aws-waf-token được sử dụng để xác thực lần trước |
Nếu bạn không biết nên truyền những tham số nào cho capsolver, hãy tham khảo những trường hợp khác nhau sau đây để truyền những tham số khác nhau, nếu không có trường hợp nào phù hợp với bạn, hãy liên hệ với bộ phận chăm sóc khách hàng của chúng tôi để xử lý.
Trường hợp | Truyền tham số | Điều kiện tiên quyết |
---|---|---|
Trường hợp 1 | websiteURL | Mã phản hồi của trang captcha AWS 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.."} |
Trường hợp 2 | websiteURL awsKey awsIv awsContext awsChallengeJS | Theo tiền đề của trường hợp 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 đó có nghĩa là 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. Đặc biệt chú ý Nếu bạn nhận được timeout metering, your parameters have expired, please update awsKey, awsIv, awsContext or awsChallengeJS. Khi lỗi xảy ra, có nghĩa là bốn tham số mà bạn truyền không tương ứng với nhau, hoặc đã hết hạn, đề nghị mỗi yêu cầu đều phân tích tất cả các tham số trong thời gian thực. |
Trường hợp 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. |
Trường hợp 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 biên dịch từ mã của jsapi.js , thì jsapi.js có thể được truyền trực tiếp đến capsolver dưới dạng giá trị của awsApiJs. |
Trường hợp 4 | websiteURL awsProblemUrl | Phiên bản đặc biệt, khi trang không tìm thấy key , iv , context , challenge.js và chỉ tìm thấy captcha.js , bạn cần truyền url giao diện problem cho capsolver, awsProblemUrl phải chứa các giá trị như problem và num_solutions_required , có thể tìm thấy bằng cách tìm kiếm visualSolutionsRequired trong html của trang.awsProblemUrl ví dụ đầy đủ: 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 |
Trường hợp 5 | websiteURL awsApiKey awsApiJs awsExistingToken | Thông thường xảy ra trong trường hợp cần xác thực 2 bước, problem giao diện chứa một api_key (giá trị của mỗi trang web thường không thay đổi) như awsApiKey , trang có một jsapi.js như awsApiJs , aws-waf-token xác thực lần trước được truyền đến capsolver như 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", // Required
"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 nhiệm vụ cho chúng tôi, bạn nên nhận được ‘ID nhiệm vụ’ trong phản hồi nếu nó thành công. Xin đọc errorCode: danh sách đầy đủ các lỗi nếu bạn không nhận được ID nhiệm vụ.
Ví dụ Phản hồi
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Lấy Kết quả
Sau khi bạn có taskId, bạn cần gửi taskId để lấy giải pháp. Cấu trúc phản hồi được giải thích ở getTaskResult.
Tùy thuộc vào tải của hệ thống, bạn sẽ nhận kết quả trong khoảng 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"
})