# reCAPTCHA 파라미터 찾기

> reCAPTCHA의 websiteKey(sitekey), websiteURL, v3의 pageAction, 콜백 함수를 개발자 도구의 Network, Sources, Console에서 찾는 방법과 자동 조회 스크립트를 안내해요.

Source: https://docs.yescaptcha.com/ko/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/

reCAPTCHA 작업을 만들려면 `websiteURL`(캡차가 나타나는 페이지 주소)과 `websiteKey`(사이트 키)가 필요하고, v3는 `pageAction`도 필요해요. Selenium 같은 도구로 제출을 시뮬레이션할 때는 콜백 함수도 알아야 해요. 이 값들은 모두 브라우저 개발자 도구(F12)에서 찾을 수 있어요.

## 가장 빠른 방법: 자동 조회 스크립트

캡차가 나타나는 페이지를 열고 F12를 눌러 콘솔(Console)을 연 다음, 아래 스크립트를 붙여넣고 실행하세요.

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();
```

결과에서 `sitekey`가 `websiteKey`, `pageurl`이 `websiteURL`이에요. `version`은 v2인지 v3인지를 나타내고, `function`과 `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"
  }
]
```

빈 배열이 반환되면 페이지에 reCAPTCHA가 아직 로드되지 않은 거예요. 캡차가 나타난 뒤에 다시 실행하세요.

## websiteKey와 websiteURL

Network 패널에서 `anchor`를 검색해 다음과 같은 요청을 찾으세요.

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

-   `k=` 뒤의 값이 `websiteKey`예요.
-   `websiteURL`에는 캡차가 나타나는 페이지의 전체 주소를 넣으세요(이 요청의 `Referer`가 보통 그 주소예요).

페이지 소스에서 `data-sitekey`를 검색해도 찾을 수 있어요.

## pageAction (v3)

`pageAction`은 페이지가 `grecaptcha.execute(사이트 키, {action: '...'})`를 호출할 때 전달하는 `action` 값이에요. 반드시 페이지와 같아야 해요.

**방법 1: 소스 검색.** 개발자 도구의 Sources 패널에서 마우스 오른쪽 버튼을 눌러 “Search in all files”를 선택하세요. 일반 v3는 `.execute(`, Enterprise v3는 `.enterprise.execute`를 검색하고 뒤에 오는 `action`을 확인하세요.

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

여기서 `pageAction`은 `login`이에요.

**방법 2: 브레이크포인트.** 코드가 난독화되어 검색되지 않으면 콘솔에서 `debug(grecaptcha.execute)`(Enterprise는 `debug(grecaptcha.enterprise.execute)`)를 실행한 뒤, 페이지에서 검증이 발생하는 동작(예: 로그인 클릭)을 하세요. 브레이크포인트에서 멈추면 오른쪽 Scope에서 `action` 값을 확인하세요.

한 사이트가 단계마다 다른 `action`을 쓸 수도 있어요(예: 회원가입 시 먼저 `signup/submit_email`, 그다음 `signup/success`). 통과하려는 단계의 값을 사용하세요. F8을 누르면 계속 실행되어 다음 `action`을 볼 수 있어요.

## 콜백 함수

Selenium 등으로 브라우저에 토큰을 입력할 때는, 입력한 뒤 페이지의 콜백 함수를 호출해 검증이 끝났음을 페이지에 알려야 해요.

-   Elements 패널에서 `data-callback`을 검색하세요. 그 값이 콜백 함수 이름이에요. 예: `data-callback="onSuccess"`
-   또는 `grecaptcha.render`를 검색해 인자의 `callback`을 확인하세요.
-   또는 콘솔에서 `___grecaptcha_cfg.clients`를 확인하거나 위의 자동 조회 스크립트를 사용하세요.

호출 방법:

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

콜백 함수가 없는 페이지도 있어요. 이럴 때는 토큰을 `g-recaptcha-response` 텍스트 상자에 입력한 뒤 바로 폼을 제출하면 돼요. 전체 과정은 [토큰으로 reCAPTCHA 완료하기](https://docs.yescaptcha.com/ko/guides/submit-recaptcha-token.md)를 참고하세요.
