CAPSOLVER
Blog
Cómo encontrar la función de callback de reCaptcha

Cómo encontrar la función de devolución de llamada de reCaptcha

Logo of CapSolver

Adélia Cruz

Neural Network Developer

23-Sep-2025

⚠️ Cada sitio web es diferente, si ninguno de los siguientes métodos puede resolver el problema.
Por favor, investiga más por tu cuenta.

Después de obtener el valor gRecaptchaResponse reconocido correctamente a través de la API, si está utilizando software de simulación, como selenium, necesita ejecutar una función de devolución de llamada para indicarle a la página web que hemos reconocido correctamente, así que aprendamos cómo encontrar esta función:

Nota: En algunos casos, realmente no hay una función de devolución de llamada. En este caso, puede asignar valores directamente al contenedor g-recaptcha-response y enviar el formulario.

Método 1: Buscar a través del elemento de la consola

Abra la página que se muestra, presione F12 para ingresar a la consola, presione Ctrl+F en Elementos para buscar, palabra clave de búsqueda: data-callback

Como puede ver, nuestra función de devolución de llamada aquí es onSuccess, y luego solo necesitamos ejecutar esta función en selenium

Si no puede encontrarlo, puede estar confundido u otras circunstancias, puede probar otros métodos

python Copy
driver.execute_script(f'onSuccess("{gRecaptchaResponse}")')

Método 2: Aplicable a la serie recaptcha-v3

Similar al método 1, palabras clave de búsqueda: grecaptcha.render

Encuentra un código similar, donde callback es la función de devolución de llamada

js Copy
grecaptcha.render('example', {
  'sitekey': 'someSitekey',
  'callback': myCallbackFunction,
  'theme': 'dark'
});

Método 3: Buscar a través de la consola

Presione F12 para ingresar a la consola, ingrese ___grecaptcha_cfg.clients, si se informa un error, la página web no ha cargado reCaptcha

Por lo general, hay muchos nodos, debemos prestar atención a la diferencia, aquí onSuccess es la función de devolución de llamada que estamos buscando

Método 4: Buscar mediante la función de búsqueda automática

Si es difícil ejecutar los métodos anteriores, puede intentar buscar definiendo una función de búsqueda automática
Presione F12 para ingresar a la consola e ingrese la siguiente función definida automáticamente findRecaptchaClients()

js Copy
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()

Luego ejecute esta función findRecaptchaClients() en console para encontrar la función correspondiente

js Copy
[
  {
    "id": "0",
    "version": "V2",
    "sitekey": "site key-",
    "function": "onSuccess",
    "callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']",
    "pageurl": "site url"
  }
]

¿Cómo llamar a la función anónima de reCaptcha?

Nota: A veces, la función de devolución de llamada encontrada es un nombre de función, como onSuccess mencionado anteriormente, directamente onSuccess(gRecaptchaResponse) al llamar, pero a veces se encuentra que es una función anónima, lo que significa que no hay nombre de función, como el siguiente:

Para este tipo de función anónima, solo necesitamos ejecutarla de acuerdo con la ruta completa que acabamos de encontrar, y el efecto es el mismo, por ejemplo:

js Copy
___grecaptcha_cfg.clients.xxxxxxxxx.xxxxx.xxxxx.callback(gRecaptchaResponse)

Demos un ejemplo, tomemos este sitio web como ejemplo, ingrese ___grecaptcha_cfg.clients para expandir la búsqueda, puede ver la función de devolución de llamada aquí promise-callback es una función anónima f(token)

Podemos hacer clic derecho en él y hacer clic en Copiar ruta de propiedad para copiar esta ruta de nodo

js Copy
[100000].l.l["promise-callback"]("gRecaptchaResponse")

Agregue el ___grecaptcha_cfg.clients recién ingresado, y puede obtener la ruta completa de esta función

js Copy
___grecaptcha_cfg.clients[100000].l.l["promise-callback"]

Finalmente, es el mismo que el método de ejecución mencionado anteriormente, simplemente ejecútelo como una función normal

js Copy
___grecaptcha_cfg.clients[100000].l.l["promise-callback"](gRecaptchaResponse)

Equipo Capsolver 💜

Aviso de Cumplimiento: La información proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas está estrictamente prohibido y será investigado. Nuestras soluciones para la resolución de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos públicos. Fomentamos el uso responsable de nuestros servicios. Para obtener más información, visite nuestros Términos de Servicio y Política de Privacidad.

Máse