ReCaptchaV2: reCAPTCHA v2 को हल करना
createTask विधि से कार्य (task) बनाएं और getTaskResult विधि से परिणाम प्राप्त करें।
हमारे द्वारा समर्थित कार्य प्रकार (types
):
ReCaptchaV2TaskProxyLess
सर्वर के अंतर्निहित प्रॉक्सी का उपयोग कर रहा है।ReCaptchaV2EnterpriseTask
इस कार्य प्रकार के लिए आपके अपने प्रॉक्सी की आवश्यकता होती है।ReCaptchaV2EnterpriseTaskProxyLess
सर्वर के अंतर्निहित प्रॉक्सी का उपयोग कर रहा है।
कार्य बनाएं (Create Task)
createTask विधि से एक कार्य बनाएं।
कार्य बनाने से पहले, यदि आपको प्लेराइट (playwright) और पपेटियर (puppeteer) जैसे ऑटोमेशन टूल में टोकन का उपयोग करने की आवश्यकता है, तो आपको उनके कॉलबैक फ़ंक्शंस को खोजने की आवश्यकता हो सकती है। संदर्भ:
कार्य ऑब्जेक्ट संरचना (Task Object Structure)
यदि आप नहीं जानते कि पैरामीटर कैसे सेट करें, तो आवश्यक पैरामीटर स्वचालित रूप से प्राप्त करने के लिए CapSolver एक्सटेंशन का उपयोग करें।
यदि आपको लगता है कि v2 टोकन अमान्य है, तो कृपया JSON कॉन्फ़िगरेशन प्राप्त करने और कॉन्फ़िगरेशन के लिए हमारी ग्राहक सेवा को भेजने के लिए CapSolver एक्सटेंशन का उपयोग करें। कॉन्फ़िगरेशन के बाद, यह टोकन स्कोर को काफी बेहतर करेगा।
गुणधर्म (Properties) | प्रकार (Type) | आवश्यक (Required) | विवरण (Description) |
---|---|---|---|
type | String | आवश्यक | ReCaptchaV2TaskProxyLess ReCaptchaV2EnterpriseTask ReCaptchaV2EnterpriseTaskProxyLess |
websiteURL | String | आवश्यक | लक्ष्य वेबपेज का URL जो कैप्चा लोड करता है, केवल होस्ट के बजाय पूरा URL सबमिट करना सबसे अच्छा है। |
websiteKey | String | आवश्यक | Recaptcha वेबसाइट कुंजी। |
proxy | String | वैकल्पिक | प्रॉक्सी का उपयोग करना सीखें। |
pageAction | String | वैकल्पिक | ReCaptchaV2 के लिए, यदि /anchor एंडपॉइंट के पेलोड में एक sa पैरामीटर है, तो कृपया इसका मान सबमिट करें। |
recaptchaDataSValue | String | वैकल्पिक | ReCaptchaV2 सामान्य संस्करण के लिए, यदि /anchor एंडपॉइंट के पेलोड में एक s पैरामीटर है, तो कृपया इसका मान सबमिट करें। |
enterprisePayload | Object | वैकल्पिक | ReCaptchaV2 एंटरप्राइज संस्करण के लिए, यदि /anchor एंडपॉइंट के पेलोड में एक s पैरामीटर है, तो कृपया इसका मान सबमिट करें। |
isInvisible | Bool | वैकल्पिक | यदि “मैं रोबोट नहीं हूँ” चेकबॉक्स नहीं है लेकिन चुनौती फिर भी दिखाई देगी, तो ‘true’ पास करें, आमतौर पर v2 अदृश्य मोड में इसकी आवश्यकता होती है। |
isSession | Bool | वैकल्पिक | सेशन मोड, सक्षम होने पर, एक recaptcha-ca-t मान लौटाएगा, जिसका उपयोग कुकी के रूप में किया जाता है। यह आमतौर पर v3 में दिखाई देता है।ध्यान दें: कुछ वेबसाइटों को recaptcha-ca-e मान की आवश्यकता होती है, जो आमतौर पर v2 में दिखाई देता है। यदि यह मान मौजूद है, तो यह बिना किसी अतिरिक्त पैरामीटर सेटिंग के स्वचालित रूप से वापस कर दिया जाएगा। |
apiDomain | String | वैकल्पिक | कैप्चा लोड करने के लिए डोमेन नाम। आमतौर पर, इस पैरामीटर को पास करने की आवश्यकता नहीं होती है। • http://www.google.com/ • http://www.recaptcha.net/ |
उदाहरण अनुरोध (Example Request)
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV2Task",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN" // Optional
},
"isInvisible": false, // Optional
"pageAction": "submit", // Optional
"apiDomain": "", // Optional
"proxy": "http:ip:port:user:pass", // socks5:ip:port:user:pass, Optional
}
}
हमारे पास कार्य सबमिट करने के बाद, यदि यह सफल होता है तो आपको प्रतिक्रिया में एक ‘taskId’ प्राप्त होना चाहिए। यदि आपको कार्य आईडी प्राप्त नहीं हुई है तो कृपया errorCode: त्रुटियों की पूरी सूची पढ़ें।
उदाहरण प्रतिक्रिया (Example Response)
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
परिणाम प्राप्त करना (Getting Results)
taskId प्राप्त करने के बाद, आपको समाधान पुनः प्राप्त करने के लिए taskId सबमिट करना होगा। प्रतिक्रिया संरचना getTaskResult में समझाई गई है।
सिस्टम लोड के आधार पर, आपको 1s
से 10s
के अंतराल के भीतर परिणाम प्राप्त होंगे।
उदाहरण अनुरोध (Example Request)
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
उदाहरण प्रतिक्रिया (Example Response)
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"userAgent": "xxx", // User-Agent
"secChUa": "xxx", // Sec-Ch-Ua
"createTime": 1671615324290, // टोकन का निर्माण समय
"gRecaptchaResponse": "3AHJ......", // token
"recaptcha-ca-t": "AbEM......", // कुछ v3 वेबसाइटों में सेशन मोड होता है। isSession को सक्षम करने के बाद, यह पैरामीटर वापस किया जाएगा और कुकी के रूप में उपयोग किया जाएगा।
"recaptcha-ca-e": "Abp_......" // कुछ v2 वेबसाइटों में यह पैरामीटर होता है, जिसका उपयोग कुकी के रूप में किया जाता है। यदि ऐसा कोई मान मौजूद है, तो यह स्वचालित रूप से वापस कर दिया जाएगा।
},
"status": "ready"
}
SDK अनुरोध का उपयोग करें (Use SDK Request)
#pip install --upgrade capsolver
#export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
})
नमूना कोड (Sample Code)
# pip install requests
import requests
import time
# TODO: set your config
api_key = "YOUR_API_KEY" # capsolver की आपकी एपीआई कुंजी
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # आपकी लक्षित साइट की साइट कुंजी
site_url = "https://www.google.com/recaptcha/api2/demo" # आपकी लक्षित साइट का पेज URL
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"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("कार्य बनाने में विफल रहा:", res.text)
return
print(f"taskId प्राप्त हुआ: {task_id} / परिणाम प्राप्त हो रहा है...")
while True:
time.sleep(1) # देरी
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('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("हल करने में विफल रहा! प्रतिक्रिया:", res.text)
return
token = capsolver()
print(token)