मार्गदर्शिका
कार्य (टोकन)
AWS WAF

AwsWafCaptcha: AWS WAF को हल करना

TIP

कृपया कार्य को createTask विधि के साथ बनाएं और getTaskResult विधि के साथ परिणाम प्राप्त करें।

हम जिस प्रकार के कार्य प्रकार का समर्थन करते हैं:

  • AntiAwsWafTask इस कार्य प्रकार को प्रॉक्सी की जानकारी की आवश्यकता है।
  • AntiAwsWafTaskProxyLess इस कार्य प्रकार को प्रॉक्सी की आवश्यकता नहीं होती है।

कार्य बनाएं

createTask विधि के साथ पहचान कार्य बनाएं।

कार्य ऑब्जेक्ट संरचना

गुणप्रकारआवश्यकविवरण
typeStringRequiredAntiAwsWafTask
AntiAwsWafTaskProxyLess
proxyStringRequiredसिखाएँ प्रॉक्सी का प्रयोग कर रहा है
websiteURLStringRequiredकैप्चा से संबंधित जानकारी के पृष्ठ के यूआरएल पर वापस जाएं
awsKeyStringOptionalकोड पृष्ठ द्वारा `key’ मान लौटाया
awsIvStringOptionalकोड पृष्ठ द्वारा `iv’ मान लौटाया
awsContextStringOptionalकोड पृष्ठ द्वारा `context’ मान लौटाया
awsChallengeJSStringOptionalकैप्चा पृष्ठ द्वारा लौटाया गया challenge.js लिंक
awsApiJsStringOptionalकैप्चा पृष्ठ द्वारा लौटाया गया jsapi.js लिंक
awsProblemUrlStringOptionalproblem इंटरफ़ेस यूआरएल जिसमें कीवर्ड problem और num_solutions_required शामिल हैं
awsApiKeyStringOptionalproblem इंटरफ़ेस के लिए api_key मान
awsExistingTokenStringOptionalपिछले सत्यापित किए गए aws-waf-token
मुझे कौन से पैरामीटर का उपयोग करना चाहिए?

यदि आप नहीं जानते कि कौन से मापदंडों का उपयोग किया जाना चाहिए, तो विभिन्न मापदंडों को पारित करने के लिए निम्नलिखित कुछ अलग-अलग परिस्थितियों

मामलापैरामीटर पास करनाआवश्यक शर्तें
मामला 1websiteURLAWS पृष्ठ प्रतिक्रिया कोड 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, क्योंकि सर्वर ने कैप्चा ट्रिगर नहीं किया है, कृपया मैन्युअल रूप से key, iv, context पैरामीटर capsolver को पास करें।
विशेष ध्यान दें
यदि आपको मिला timeout metering, your parameters have expired, please update awsKey, awsIv, awsContext or awsChallengeJS. एक त्रुटि का अर्थ है कि आपके द्वारा दिए गए चार पैरामीटर एक दूसरे से मेल नहीं खाते हैं या समाप्त हो गए हैं, और यह सिफारिश की जाती है कि प्रत्येक
मामला 3-1websiteURL
awsChallengeJS
जब पृष्ठ key, iv, context नहीं ढूंढ पाता है, लेकिन challenge.js मौजूद है, तो challenge.js को awsChallengeJS के मान के रूप में capsolver को पास करें।
मामला 3-2websiteURL
awsApiJs
स्थिति 3-1 के आधार पर, यदि यह स्पष्ट नहीं है कि challenge.js कहां से आता है, लेकिन पृष्ठ पर jsapi.js है, तो इसका मतलब है कि challenge.js को jsapi.js के कोड से इकट्ठा किया गया है, फिर jsapi.js को awsApiJs के मान के रूप में सीधे कैप्सॉल्वर में पास किया जा सकता है।
मामला 4websiteURL
awsProblemUrl
विशेष संस्करण, जब पृष्ठ key, iv, context, challenge.js नहीं ढूंढ पाता है, और केवल captcha.js ही मिलता है, तो आपको problem इंटरफ़ेस URL को capsolver में पास करना होगा, awsProblemUrl में problem और num_solutions_required जैसे मान होने चाहिए, जिन्हें पृष्ठ html में visualSolutionsRequired खोज कर पाया जा सकता है।

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-token कैप्सोल्वर को awsExistingToken के रूप में पास किया गया

उदाहरण अनुरोध

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
    }
}

जब आप कार्य को हमें प्रस्तुत करते हैं, तो आपको यदि यह सफल है तो उत्तर में ‘कार्य आईडी’ प्राप्त ह

ोना चाहिए। कृपया यदि आपको कार्य आईडी प्राप्त नहीं हुई है, तो कृपया errorCode: पूरी त्रुटि सूची पढ़ें।

उदाहरण उत्तर

{
    "errorId": 0,
    "errorCode": "",
    "errorDescription": "",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

परिणाम प्राप्त करना

जब आपके पास कार्य आईडी होता है, तो आपको समाधान प्राप्त करने के लिए कार्य आईडी को प्रस्तुत करना होता है। प्रतिसाद संरचना की व्याख्या 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"
})