AwsWafCaptcha: AWS WAFの解決
TIP
createTaskメソッドでタスクを作成し、getTaskResultメソッドで結果を取得します。
サポートするタスクタイプ types
:
AntiAwsWafTask
このタスクタイプは独自のプロキシが必要です。AntiAwsWafTaskProxyLess
このタスクタイプは独自のプロキシは必要ありません。
タスクの作成
createTaskメソッドを使用して認識タスクを作成します。
タスクオブジェクト構造
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | Required | AntiAwsWafTask AntiAwsWafTaskProxyLess |
proxy | String | Required | プロキシの使用を学びます |
websiteURL | String | Required | captcha 関連情報のページurlに戻る |
awsKey | String | Optional | captcha ページが返す key 値 |
awsIv | String | Optional | captcha ページが返す iv 値 |
awsContext | String | Optional | captcha ページが返す context 值 |
awsChallengeJS | String | Optional | captcha ページが返す chalenge.js リンク |
awsProblemUrl | String | Optional | problem 、num_solutions_required などのキーワードを含む problem インタフェースurl |
WARNING
取得したトークンが利用できない場合、IPの問題がある可能性があります。自分のプロキシを渡すには、AntiAwsWafTaskモードを使用してみてください。
WARNING
どのパラメータを capsolver に渡すべきか分からない場合は、次の4つの異なる状況を参照して異なるパラメータを渡してください。もしあなたの状況を満たしていない場合は、カスタマーサービスに連絡してください。
ケース | 引数の転送 | 前提条件 |
---|---|---|
ケース1 | websiteURL | aws captcha ページレスポンスコードは 405 であり、html で次のパラメータを見つけることができます。window.gokuProps = {"key":"AQID...","iv":"A6we...","context":"rGXm.."} |
ケース1 | websiteURL awsKey awsIv awsContext awsChallengeJS | ケース1の前提条件で、 capsolver がエラーメッセージを返した場合:Captcha render unexpect status code XXX, please pass in the awsKey, awsIv, awsContext and awsChallengeJs parameters ,サービス側が captcha をトリガしていないことを示します。手動で key ,iv ,context パラメータを解析して capsolver に渡してください。 |
ケース1 | websiteURL awsChallengeJS | ページに key ,iv ,context が見つかりませんが、challenge.js がある場合は、challenge.js を awsChallengeJS の値として capsolver に渡します。 |
ケース1 | websiteURL awsProblemUrl | 特殊なバージョンでは、ページhtml内で visualSolutionsRequired を検索して見つけることができる key ,iv ,context ,challenge.js ,captcha.js だけの場合は、problem インタフェースurlを capsolver に渡す必要があります。awsProblemUrl には、problem ,num_solutions_required などの値が含まれているはずです。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 |
例のリクエスト
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
"awsProblemUrl": "https://ait...awswaf.com/ait/ait/ait/problem?kind=visual&...&problem=gridcaptcha-5-0.1-0&num_solutions_required=2", // Optional
"proxy": "http:ip:port:user:pass" // socks5:ip:port:user:pass
}
}
タスクを提出した後、成功した場合はレスポンスで ‘タスクID’ を受け取るはずです。タスクIDを受け取らなかった場合は、エラーコード:エラーの完全なリストを読んでください。
例のレスポンス
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
結果の取得
タスクIDを取得したら、タスクIDを提出して解決策を取得する必要があります。レスポンス構造はgetTaskResultで説明されています。
システムの負荷に応じて、結果を取得するまでの間隔は 5秒
から 30秒
までです。
例のリクエスト
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
例のレスポンス
{
"errorId": 0,
"taskId": "646825ef-9547-4a29-9a05-50a6265f9d8a",
"status": "ready",
"solution": {
"cookie": "223d1f60-0e9f-4238-ac0a-e766b15a778e:EQoAf0APpGIKAAAA:AJam3OWpff1VgKIJxH4lGMMHxPVQ0q0R3CNtgcMbR4VvnIBSpgt1Otbax4kuqrgkEp0nFKanO5oPtwt9+Butf7lt0JNe4rZQwZ5IrEnkXvyeZQPaCFshHOISAFLTX7AWHldEXFlZEg7DjIc="
}
}
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"
})