
Rajinder Singh
Deep Learning Researcher

⚠️ प्रत्येक वेबसाइट अलग है, यदि निम्न में से कोई भी तरीका समस्या को हल नहीं कर सकता है।
कृपया स्वयं और अधिक शोध करें।
API के माध्यम से सफलतापूर्वक मान्यता प्राप्त gRecaptchaResponse मान प्राप्त करने के बाद, यदि आप सिमुलेशन सॉफ़्टवेयर, जैसे सेलेनियम का उपयोग कर रहे हैं, तो आपको वेबपेज को यह बताने के लिए एक कॉलबैक फ़ंक्शन निष्पादित करने की आवश्यकता है कि हमने सफलतापूर्वक पहचान कर ली है, इसलिए आइए जानें कि इस फ़ंक्शन को कैसे खोजना है:
नोट: कुछ मामलों में, वास्तव में कोई कॉलबैक फ़ंक्शन नहीं होता है। इस स्थिति में, आप सीधे g-recaptcha-response कंटेनर को मान असाइन कर सकते हैं और फ़ॉर्म सबमिट कर सकते हैं।
प्रदर्शित पृष्ठ खोलें, कंसोल में प्रवेश करने के लिए F12 दबाएँ, खोज के लिए एलिमेंट्स में Ctrl+F दबाएँ, कीवर्ड खोजें: data-callback
जैसा कि आप देख सकते हैं, हमारा कॉलबैक फ़ंक्शन यहाँ onSuccess है, और फिर हमें केवल सेलेनियम में इस फ़ंक्शन को निष्पादित करने की आवश्यकता है
यदि आप इसे नहीं ढूँढ पा रहे हैं, तो यह भ्रमित या अन्य परिस्थितियों में हो सकता है, आप अन्य तरीकों का प्रयास कर सकते हैं
driver.execute_script(f'onSuccess("{gRecaptchaResponse}")')

विधि 1 के समान, कीवर्ड खोजें: grecaptcha.render
समान कोड खोजें, जहाँ कॉलबैक कॉलबैक फ़ंक्शन है
grecaptcha.render('example', {
'sitekey': 'someSitekey',
'callback': myCallbackFunction,
'theme': 'dark'
});
कंसोल में प्रवेश करने के लिए F12 दबाएँ, ___grecaptcha_cfg.clients दर्ज करें, यदि कोई त्रुटि रिपोर्ट की जाती है, तो वेबपेज ने reCaptcha लोड नहीं किया है
आमतौर पर कई नोड होते हैं, हमें अंतर पर ध्यान देने की आवश्यकता है, यहाँ onSuccess वह कॉलबैक फ़ंक्शन है जिसकी हम तलाश कर रहे हैं

यदि उपरोक्त विधियों को निष्पादित करना कठिन है, तो आप स्वचालित खोज फ़ंक्शन को परिभाषित करके खोजने का प्रयास कर सकते हैं
F12 दबाकर कंसोल में प्रवेश करें, और निम्नलिखित स्व-परिभाषित फ़ंक्शन findRecaptchaClients() दर्ज करें
function findRecaptchaClients() {
// eslint-disable-next-line camelcase
if (typeof (___grecaptcha_cfg) !== 'undefined') {
// eslint-disable-next-line camelcase, no-undef
return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => {
const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' }
const objects = Object.entries(client).filter(([_, value]) => value && typeof value === 'object')
objects.forEach(([toplevelKey, toplevel]) => {
const found = Object.entries(toplevel).find(([_, value]) => (
value && typeof value === 'object' && 'sitekey' in value && 'size' in value
))
if (typeof toplevel === 'object' && toplevel instanceof HTMLElement && toplevel['tagName'] === 'DIV') {
data.pageurl = toplevel.baseURI
}
if (found) {
const [sublevelKey, sublevel] = found
data.sitekey = sublevel.sitekey
const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback'
const callback = sublevel[callbackKey]
if (!callback) {
data.callback = null
data.function = null
} else {
data.function = callback
const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join('')
data.callback = `___grecaptcha_cfg.clients${keys}`
}
}
})
return data
})
}
return []
}
findRecaptchaClients && findRecaptchaClients()
फिर संबंधित फ़ंक्शन को खोजने के लिए console में इस फ़ंक्शन findRecaptchaClients() को निष्पादित करें
[
{
"id": "0",
"version": "V2",
"sitekey": "site key-",
"function": "onSuccess",
"callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']",
"pageurl": "site url"
}
]
नोट: कभी-कभी पाया गया कॉलबैक फ़ंक्शन एक फ़ंक्शन नाम होता है, जैसे ऊपर वर्णित onSuccess, कॉल करते समय सीधे onSuccess(gRecaptchaResponse), लेकिन कभी-कभी यह एक अनाम फ़ंक्शन पाया जाता है, जिसका अर्थ है कि कोई फ़ंक्शन नाम नहीं है, जैसे निम्नलिखित:
इस प्रकार के अनाम फ़ंक्शन के लिए, हमें इसे केवल उस पूर्ण पथ के अनुसार निष्पादित करने की आवश्यकता है जिसे हमने अभी पाया है, और प्रभाव समान है, उदाहरण के लिए:
___grecaptcha_cfg.clients.xxxxxxxxx.xxxxx.xxxxx.callback(gRecaptchaResponse)
आइए एक उदाहरण दें, इस वेबसाइट को उदाहरण के रूप में लें, खोज को विस्तारित करने के लिए ___grecaptcha_cfg.clients दर्ज करें, आप यहां कॉलबैक फ़ंक्शन promise-callback एक अनाम फ़ंक्शन f(token) देख सकते हैं

हम इस पर राइट क्लिक कर सकते हैं और इस नोड पथ को कॉपी करने के लिए Copy property path पर क्लिक कर सकते हैं
[100000].l.l["promise-callback"]("gRecaptchaResponse")
अभी दर्ज किया गया ___grecaptcha_cfg.clients जोड़ें, और आप इस फ़ंक्शन का पूरा पथ प्राप्त कर सकते हैं
___grecaptcha_cfg.clients[100000].l.l["promise-callback"]
अंत में, यह ऊपर वर्णित निष्पादन विधि के समान है, बस इसे एक सामान्य फ़ंक्शन के रूप में निष्पादित करें
___grecaptcha_cfg.clients[100000].l.l["promise-callback"](gRecaptchaResponse)
Capsolver टीम 💜
CapSolver और n8n का उपयोग करके eCAPTCHA v2/v3 सॉल्वर API बनाएं। बिना कोडिंग के टोकन को ऑटोमेट करने, वेबसाइट पर सबमिट करने और सुरक्षित डेटा निकालने का तरीका सीखें।

खोजें कि चित्र पहेलियां हल करने के लिए सबसे अच्छा AI क्या है। जानें कैसे कैपसॉल्वर के विजन इंजन और इमेज टू टेक्स्ट एपीआईज़ उच्च शुद्धता के साथ जटिल दृश्य चुनौतियों को स्वचालित करते हैं।
