AwsWafCaptcha: AWS WAF को हल करना
createTask विधि का उपयोग करके कार्य बनाएं और getTaskResult विधि का उपयोग करके परिणाम प्राप्त करें।
जो कार्य प्रकार types हम समर्थन करते हैं वे हैं:
AntiAwsWafTaskइस कार्य प्रकार के लिए आपके अपने प्रॉक्सी की आवश्यकता होती है।AntiAwsWafTaskProxyLessइस कार्य प्रकार के लिए आपके अपने प्रॉक्सी की आवश्यकता नहीं होती है।
कार्य बनाएं
createTask विधि का उपयोग करके एक पहचान कार्य बनाएं।
कार्य ऑब्जेक्ट संरचना
| विशेषताएं | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
| type | String | Required | AntiAwsWafTaskAntiAwsWafTaskProxyLess |
| proxy | String | Optional | प्रॉक्सी का उपयोग कैसे करें जानें |
| websiteURL | String | Required | उस पृष्ठ का यूआरएल जो कैप्चा संबंधी जानकारी देता है |
| awsKey | String | Optional | कैप्चा पृष्ठ द्वारा लौटाया गया key मान |
| awsIv | String | Optional | कैप्चा पृष्ठ द्वारा लौटाया गया iv मान |
| awsContext | String | Optional | कैप्चा पृष्ठ द्वारा लौटाया गया context मान |
| awsChallengeJS | String | Optional | कैप्चा पृष्ठ द्वारा लौटाया गया challenge.js लिंक |
| awsApiJs | String | Optional | कैप्चा पृष्ठ द्वारा लौटाया गया jsapi.js लिंक |
| awsProblemUrl | String | Optional | problem, num_solutions_required, आदि जैसे कीवर्ड युक्त समस्या एंडपॉइंट यूआरएल। |
| awsApiKey | String | Optional | problem एंडपॉइंट का api_key मान |
| awsExistingToken | String | Optional | पिछली सत्यापन के लिए उपयोग किया गया aws-waf-token |
यदि आप अनिश्चित हैं कि capsolver को कौन से पैरामीटर पास करने हैं, तो कृपया विभिन्न पैरामीटर संयोजनों के लिए निम्नलिखित परिदृश्यों को देखें। यदि आपकी स्थिति इसमें शामिल नहीं है, तो सहायता के लिए हमारी ग्राहक सेवा से संपर्क करें।
| स्थिति | पास किए जाने वाले पैरामीटर | पूर्व-आवश्यकताएं |
|---|---|---|
| स्थिति 1 | websiteURL | aws कैप्चा पृष्ठ का प्रतिक्रिया कोड 405 हो सकता है, और निम्नलिखित पैरामीटर एचटीएमएल में पाए जा सकते हैं:window.gokuProps = {"key":"AQID...","iv":"A6we...","context":"rGXm.."} |
| स्थिति 2 | websiteURLawsKeyawsIvawsContextawsChallengeJS | स्थिति 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-1 | websiteURLawsChallengeJS | जब पृष्ठ को key, iv, context नहीं मिल पाता है, लेकिन challenge.js होता है, तो challenge.js को capsolver को awsChallengeJS के मान के रूप में पास करें। |
| स्थिति 3-2 | websiteURLawsApiJs | स्थिति 3-1 के आधार पर, यदि यह स्पष्ट नहीं है कि challenge.js कहाँ से आता है, लेकिन पृष्ठ में jsapi.js है, तो इसका मतलब है कि challenge.js को jsapi.js के कोड से असेंबल किया गया है, तो jsapi.js को सीधे capsolver को awsApiJs के मान के रूप में पास किया जा सकता है। |
| स्थिति 4 | websiteURLawsProblemUrl | विशेष मामलों में, जब पृष्ठ को 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 |
| स्थिति 5 | websiteURLawsApiKeyawsApiJsawsExistingToken | यह आमतौर पर उन स्थितियों में होता है जहां द्वितीयक सत्यापन की आवश्यकता होती है। 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)