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 リンク |
awsApiJs | String | Optional | captcha ページが返す jsapi.js リンク |
awsProblemUrl | String | Optional | problem 、num_solutions_required などのキーワードを含む problem インタフェースurl |
awsApiKey | String | Optional | problem インタフェースのapi_key 値 |
awsExistingToken | String | Optional | 前回の検証で使用したaws-waf-token |
どのパラメータを渡すべきですか?
capsolverにどのパラメータを渡すべきかお分かりでない場合は、以下のいくつかの異なる状況に応じて異なるパラメータを渡してください。お客様の状況に該当しない場合は、カスタマーサービスまでご連絡ください。
状況 | 引数の転送 | 前提条件 |
---|---|---|
状況 1 | websiteURL | aws captcha ページレスポンスコードは 405 であり、html で次のパラメータを見つけることができます。window.gokuProps = {"key":"AQID...","iv":"A6we...","context":"rGXm.."} |
状況 2 | 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 に渡してください。 特に注意する もしあなたが受け取ったら timeout metering, your parameters have expired, please update awsKey, awsIv, awsContext or awsChallengeJS. のエラーが発生した場合は、渡された4つのパラメータが互いに対応していないか、期限切れになっていることを示します。要求ごとにすべてのパラメータをリアルタイムで解析することをお勧めします。 |
状況 3-1 | websiteURL awsChallengeJS | ページに key ,iv ,context が見つかりませんが、challenge.js がある場合は、challenge.js を awsChallengeJS の値として capsolver に渡します。 |
状況 3-2 | websiteURL awsApiJs | 状況 3-1 に基づいて、challenge.js がどこから来たのか明確でないが、ページに jsapi.js がある場合、challenge.js は jsapi.js のコードからアセンブルされていることを意味し、jsapi.js は awsApiJs の値として capsolver に直接渡すことができます。 |
状況 4 | 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 |
状況 5 | websiteURL awsApiKey awsApiJs awsExistingToken | 通常は二次認証が必要な場合に発生し、problem インターフェースには awsApiKey として api_key (各サイトの値は通常変化しない)が含まれ、ページには awsApiJs として jsapi.js があり、前回の認証の aws-waf-token が awsExistingToken として capsolver に渡されます。 |
例のリクエスト
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
}
}
タスクを提出した後、成功した場合はレスポンスで ‘タスク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"
})