如何找到reCaptcha的回调函数

Ethan Collins
Pattern Recognition Specialist
23-Sep-2025
如何查找reCaptcha各个版本的回调函数

⚠️每个网站都不同,如果以下方法都不能解决问题。
请自行进行更多研究。
通过API获取成功识别的gRecaptchaResponse值后,如果使用的是模拟软件,例如selenium,则需要执行回调函数来告诉网页我们已经成功识别,所以让我们学习如何找到这个函数:
注意:某些情况下,确实不存在回调函数。在这种情况下,您可以直接为g-recaptcha-response容器赋值并提交表单。
方法一:通过控制台元素搜索
打开显示的页面,按F12进入控制台,在Elements中按Ctrl+F搜索,搜索关键词:data-callback
可以看到,这里的回调函数是onSuccess,然后我们只需要在selenium中执行这个函数
如果找不到,可能是混淆或其他情况,您可以尝试其他方法
python
driver.execute_script(f'onSuccess("{gRecaptchaResponse}")')

方法二:适用于recaptcha-v3系列
类似方法一,搜索关键词:grecaptcha.render
找到类似代码,其中callback是回调函数
js
grecaptcha.render('example', {
'sitekey': 'someSitekey',
'callback': myCallbackFunction,
'theme': 'dark'
});
方法三:通过控制台搜索
按F12进入控制台,输入___grecaptcha_cfg.clients,如果报错,则网页未加载reCaptcha
通常会有很多节点,我们需要注意区别,这里onSuccess是我们寻找的回调函数

方法四:通过自动搜索函数查找
如果难以执行以上方法,可以尝试通过定义自动搜索函数查找
按F12进入控制台,输入以下自定义函数findRecaptchaClients()
js
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()以查找相应的函数
js
[
{
"id": "0",
"version": "V2",
"sitekey": "site key-",
"function": "onSuccess",
"callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']",
"pageurl": "site url"
}
]
如何调用reCaptcha匿名函数?
注意:有时找到的回调函数是函数名,例如上面提到的onSuccess,调用时直接onSuccess(gRecaptchaResponse)即可,但有时发现是匿名函数,这意味着没有函数名,例如以下情况:
对于这种匿名函数,我们只需要根据刚刚找到的完整路径执行它,效果相同,例如:
js
___grecaptcha_cfg.clients.xxxxxxxxx.xxxxx.xxxxx.callback(gRecaptchaResponse)
让我们举个例子,以这个网站为例,输入___grecaptcha_cfg.clients展开搜索,可以看到这里的回调函数promise-callback是一个匿名函数f(token)

我们可以右键点击它并点击Copy property path复制此节点路径
js
[100000].l.l["promise-callback"]("gRecaptchaResponse")
添加刚输入的___grecaptcha_cfg.clients,就可以得到这个函数的完整路径
js
___grecaptcha_cfg.clients[100000].l.l["promise-callback"]
最后,与上面提到的执行方法相同,只需将其作为普通函数执行即可
js
___grecaptcha_cfg.clients[100000].l.l["promise-callback"](gRecaptchaResponse)
Capsolver团队 💜
合规声明: 本博客提供的信息仅供参考。CapSolver 致力于遵守所有适用的法律和法规。严禁以非法、欺诈或滥用活动使用 CapSolver 网络,任何此类行为将受到调查。我们的验证码解决方案在确保 100% 合规的同时,帮助解决公共数据爬取过程中的验证码难题。我们鼓励负责任地使用我们的服务。如需更多信息,请访问我们的服务条款和隐私政策。
更多
![如何使用Selenium [Python] 通过Capsolver扩展解决reCaptcha v2](https://assets.capsolver.com/prod/posts/solve-recaptcha-with-selenium-python/9df0c69facb932640c0dd4d2cfa69bbf.jpg)
如何使用 Selenium [Python] 配合 CapSolver 扩展程序解决 reCAPTCHA V2
学习如何使用Selenium Python和Capsolver扩展无缝解决reCAPTCHA v2,一份关于有效设置和自动化验证码解决方案的详细指南

Ethan Collins
05-Nov-2025

CapSolver 扩展 - 在您的浏览器中解决 reCAPTCHA
使用Capsolver验证码求解器扩展轻松解决任何网页上的reCaptcha v2 / v3 / 隐形 / 企业版

Emma Foster
27-Oct-2025

如何在网页抓取中使用Python解决reCAPTCHA问题
学习如何使用Python和Capsolver在网页抓取中解决reCAPTCHA v2和v3。分步指南、代理选项和代码示例,用于无缝自动化。

Ethan Collins
24-Oct-2025

人工智能驱动的SEO自动化:如何解决验证码以实现更智能的SERP数据收集
发现人工智能驱动的SEO自动化如何克服验证码难题,用于更智能的SERP数据收集,并了解reCAPTCHA v2/v3解决方案

Ethan Collins
23-Oct-2025

如何破解reCAPTCHA v2:reCAPTCHA v2 破解指南
学习如何使用CapSolver自动解决Google reCAPTCHA v2。了解API和SDK集成、分步指南以及优惠代码,以简化网络爬虫、自动化和开发项目中的验证码解决过程。

Ethan Collins
22-Oct-2025

reCAPTCHA 求解器 自动识别与求解方法
学习如何使用先进的AI和OCR技术自动识别和解决Google reCAPTCHA v2、v3、不可见版和企业版挑战

Ethan Collins
22-Oct-2025

