गाइड
कार्य(टोकन)
AWS WAF

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

TIP

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

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

  • AntiAwsWafTask इस कार्य प्रकार के लिए आपके अपने प्रॉक्सी की आवश्यकता होती है।
  • AntiAwsWafTaskProxyLess इस कार्य प्रकार के लिए आपके अपने प्रॉक्सी की आवश्यकता नहीं होती है।

कार्य बनाएं

createTask विधि का उपयोग करके एक पहचान कार्य बनाएं।

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

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

यदि आप अनिश्चित हैं कि capsolver को कौन से पैरामीटर पास करने हैं, तो कृपया विभिन्न पैरामीटर संयोजनों के लिए निम्नलिखित परिदृश्यों को देखें। यदि आपकी स्थिति इसमें शामिल नहीं है, तो सहायता के लिए हमारी ग्राहक सेवा से संपर्क करें।

स्थितिपास किए जाने वाले पैरामीटरपूर्व-आवश्यकताएं
स्थिति 1websiteURLaws कैप्चा पृष्ठ का प्रतिक्रिया कोड 405 हो सकता है, और निम्नलिखित पैरामीटर एचटीएमएल में पाए जा सकते हैं:
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 को capsolver को awsChallengeJS के मान के रूप में पास करें।
स्थिति 3-2websiteURL
awsApiJs
स्थिति 3-1 के आधार पर, यदि यह स्पष्ट नहीं है कि challenge.js कहाँ से आता है, लेकिन पृष्ठ में jsapi.js है, तो इसका मतलब है कि challenge.js को jsapi.js के कोड से असेंबल किया गया है, तो jsapi.js को सीधे capsolver को awsApiJs के मान के रूप में पास किया जा सकता है।
स्थिति 4websiteURL
awsProblemUrl
विशेष मामलों में, जब पृष्ठ को key, iv, context, challenge.js नहीं मिल पाता है, और केवल captcha.js होता है, तो आपको problem एंडपॉइंट यूआरएल को capsolver को पास करना होगा। awsProblemUrl में problem और num_solutions_required जैसे मान होने चाहिए। ये मान पृष्ठ के एचटीएमएल में 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 एंडपॉइंट में एक api_key (जिसका मान आमतौर पर प्रत्येक वेबसाइट के लिए स्थिर होता है) awsApiKey के रूप में होता है। पृष्ठ में jsapi.js awsApiJs के रूप में होता है, और पिछली सत्यापन से प्राप्त aws-waf-token को capsolver को awsExistingToken के रूप में पास किया जाता है।

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

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
 
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "AntiAwsWafTask", // AntiAwsWafTaskProxyLess
        "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
    }
}

जब आप हमें कार्य सबमिट करते हैं, तो सफल होने पर आपको प्रतिक्रिया में ‘taskId’ प्राप्त होना चाहिए। यदि आपको कार्य आईडी प्राप्त नहीं हुई है, तो कृपया errorCode: पूर्ण त्रुटि सूची पढ़ें। अधिक जानकारी के लिए, आप इस ब्लॉग पोस्ट को भी देख सकते हैं हाउ टू सॉल्व एडब्ल्यूएस अमेज़ॅन कैप्चा टोकन

उदाहरण प्रतिक्रिया

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

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

टास्कआईडी प्राप्त करने के बाद, आपको समाधान प्राप्त करने के लिए टास्कआईडी सबमिट करना होगा। प्रतिक्रिया संरचना getTaskResult में समझाई गई है। सिस्टम लोड के आधार पर, आपको 5s से 30s के भीतर परिणाम प्राप्त होंगे।

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

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

एसडीके अनुरोध का उपयोग करें

# 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"
})

नमूना कोड

# pip install requests
import requests
import time
 
api_key = "YOUR_API_KEY"  # TODO: your api key of capsolver
site_url = "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest"  # TODO: page url of your site
 
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'AntiAwsWafTaskProxyLess',
            "websiteURL": site_url
        }
    }
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Failed to create task:", res.text)
        return
    print(f"Got taskId: {task_id} / Getting result...")
 
    while True:
        time.sleep(1)  # delay
        payload = {"clientKey": api_key, "taskId": task_id}
        res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
        resp = res.json()
        status = resp.get("status")
        if status == "ready":
            return resp.get("solution", {}).get('cookie')
        if status == "failed" or resp.get("errorId"):
            print("Solve failed! response:", res.text)
            return
 
 
token = capsolver()
print(token)