# Encontrar los parámetros de reCAPTCHA

> Cómo encontrar el websiteKey (sitekey), el websiteURL, el pageAction de v3 y la función callback de reCAPTCHA en las pestañas Network, Sources y Console de las herramientas de desarrollo, con un script de búsqueda automática.

Source: https://docs.yescaptcha.com/es/guides/find-recaptcha-parameters/ · Last verified: 2026-10-15

> This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/guides/find-recaptcha-parameters/

Para crear una tarea de reCAPTCHA necesitas `websiteURL` (la dirección de la página donde aparece el captcha) y `websiteKey` (la clave del sitio); v3 además requiere `pageAction`. Si simulas el envío con herramientas como Selenium, también necesitas conocer la función callback. Todo esto se puede encontrar en las herramientas de desarrollo del navegador (F12).

## La forma más rápida: script de búsqueda automática

Abre la página donde aparece el captcha, pulsa F12 para abrir la consola (Console), pega el siguiente código y ejecútalo:

find-recaptcha-clients.js

```js
// Paste into the browser DevTools console on a page with reCAPTCHA, then run findRecaptchaClients().
// Lists every reCAPTCHA on the page: version (V2/V3), sitekey, page URL and the callback function.
function findRecaptchaClients() {
  if (typeof ___grecaptcha_cfg === 'undefined') return [];
  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 (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;
  });
}

findRecaptchaClients();
```

En el resultado, `sitekey` es el `websiteKey`, `pageurl` es el `websiteURL`, `version` indica si es v2 o v3, y `function` y `callback` son la función callback:

```json
[
  {
    "id": "0",
    "version": "V2",
    "sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "function": "onSuccess",
    "callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']",
    "pageurl": "https://www.google.com/recaptcha/api2/demo"
  }
]
```

Si devuelve un arreglo vacío, la página aún no ha cargado reCAPTCHA; vuelve a ejecutarlo cuando aparezca el captcha.

## websiteKey y websiteURL

En la pestaña Network, busca `anchor` y localiza una solicitud como esta:

```text
https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9&co=...&hl=en&size=normal
```

-   El valor que sigue a `k=` es el `websiteKey`.
-   En `websiteURL` va la dirección completa de la página donde aparece el captcha (normalmente es el `Referer` de esta solicitud).

También puedes buscar `data-sitekey` en el código fuente de la página.

## pageAction (v3)

`pageAction` es el `action` que la página pasa al llamar a `grecaptcha.execute(clave del sitio, {action: '...'})`, y debe coincidir con el de la página.

**Método 1: buscar en el código fuente.** En la pestaña Sources de las herramientas de desarrollo, haz clic derecho y elige “Search in all files”. En v3 normal busca `.execute(`; en v3 Enterprise busca `.enterprise.execute`, y mira el `action` que aparece a continuación:

```js
grecaptcha.ready(function () {
  grecaptcha.execute('6LdpS-gUAAAAAL3Qr2yP7rkrQjkKBVvEY_48JS5l', { action: 'login' }).then(function (token) {
    // ...
  });
});
```

Aquí `pageAction` es `login`.

**Método 2: punto de interrupción.** Si el código está ofuscado y la búsqueda no encuentra nada, ejecuta en la consola `debug(grecaptcha.execute)` (en Enterprise, `debug(grecaptcha.enterprise.execute)`) y realiza en la página la acción que dispara la verificación (por ejemplo, hacer clic en iniciar sesión). Cuando el depurador se detenga, mira el valor de `action` en Scope, en el panel de la derecha.

Un sitio puede usar distintos `action` en pasos diferentes (por ejemplo, al registrarse primero `signup/submit_email` y luego `signup/success`); usa el valor del paso que quieres superar. Pulsa F8 para continuar la ejecución y ver el siguiente `action`.

## Función callback

Cuando rellenas el token en el navegador con Selenium u otras herramientas, después debes llamar a la función callback de la página para avisarle de que la verificación ha terminado:

-   Busca `data-callback` en la pestaña Elements; su valor es el nombre de la función callback, por ejemplo `data-callback="onSuccess"`.
-   O busca `grecaptcha.render` y mira el parámetro `callback`.
-   O consulta `___grecaptcha_cfg.clients` en la consola, o usa el script de búsqueda automática de arriba.

Cómo llamarla:

```python
driver.execute_script("onSuccess(arguments[0])", g_recaptcha_response)
```

Algunas páginas no tienen función callback; en ese caso, rellena el token en el cuadro de texto `g-recaptcha-response` y envía el formulario directamente. Para el flujo completo, consulta [Completar reCAPTCHA con un token](https://docs.yescaptcha.com/es/guides/submit-recaptcha-token.md).
