ガイド
タスク(トークン)
AWS WAF

AwsWafCaptcha: AWS WAFの解決

TIP

createTaskメソッドでタスクを作成し、getTaskResultメソッドで結果を取得します。

サポートするタスクタイプ types:

  • AntiAwsWafTask このタスクタイプは独自のプロキシが必要です。
  • AntiAwsWafTaskProxyLess このタスクタイプは独自のプロキシは必要ありません。

タスクの作成

createTaskメソッドを使用して認識タスクを作成します。

タスクオブジェクト構造

プロパティタイプ必須説明
typeStringRequiredAntiAwsWafTask
AntiAwsWafTaskProxyLess
proxyStringRequiredプロキシの使用を学びます
websiteURLStringRequiredcaptcha 関連情報のページurlに戻る
awsKeyStringOptionalcaptcha ページが返す key
awsIvStringOptionalcaptcha ページが返す iv
awsContextStringOptionalcaptcha ページが返す context
awsChallengeJSStringOptionalcaptcha ページが返す chalenge.js リンク
awsApiJsStringOptionalcaptcha ページが返す jsapi.js リンク
awsProblemUrlStringOptionalproblemnum_solutions_required などのキーワードを含む problem インタフェースurl
awsApiKeyStringOptionalproblemインタフェースのapi_key
awsExistingTokenStringOptional前回の検証で使用したaws-waf-token
どのパラメータを渡すべきですか?

capsolverにどのパラメータを渡すべきかお分かりでない場合は、以下のいくつかの異なる状況に応じて異なるパラメータを渡してください。お客様の状況に該当しない場合は、カスタマーサービスまでご連絡ください。

状況引数の転送前提条件
状況 1websiteURLaws captcha ページレスポンスコードは 405 であり、html で次のパラメータを見つけることができます。
window.gokuProps = {"key":"AQID...","iv":"A6we...","context":"rGXm.."}
状況 2websiteURL
awsKey
awsIv
awsContext
awsChallengeJS
ケース1の前提条件で、 capsolver がエラーメッセージを返した場合:Captcha render unexpect status code XXX, please pass in the awsKey, awsIv, awsContext and awsChallengeJs parameters,サービス側が captcha をトリガしていないことを示します。手動で keyivcontext パラメータを解析して capsolver に渡してください。
特に注意する
もしあなたが受け取ったらtimeout metering, your parameters have expired, please update awsKey, awsIv, awsContext or awsChallengeJS. のエラーが発生した場合は、渡された4つのパラメータが互いに対応していないか、期限切れになっていることを示します。要求ごとにすべてのパラメータをリアルタイムで解析することをお勧めします。
状況 3-1websiteURL
awsChallengeJS
ページに keyivcontext が見つかりませんが、challenge.js がある場合は、challenge.js を awsChallengeJS の値として capsolver に渡します。
状況 3-2websiteURL
awsApiJs
状況 3-1 に基づいて、challenge.js がどこから来たのか明確でないが、ページに jsapi.js がある場合、challenge.jsjsapi.js のコードからアセンブルされていることを意味し、jsapi.js は awsApiJs の値として capsolver に直接渡すことができます。
状況 4websiteURL
awsProblemUrl
特殊なバージョンでは、ページhtml内で visualSolutionsRequired を検索して見つけることができる keyivcontextchallenge.jscaptcha.js だけの場合は、problem インタフェースurlを capsolver に渡す必要があります。awsProblemUrl には、problemnum_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
状況 5websiteURL
awsApiKey
awsApiJs
awsExistingToken
通常は二次認証が必要な場合に発生し、problem インターフェースには awsApiKey として api_key(各サイトの値は通常変化しない)が含まれ、ページには awsApiJs として jsapi.js があり、前回の認証の aws-waf-tokenawsExistingToken として 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"
})