CAPSOLVER
ブログ
reCaptchaのコールバック関数の探し方

reCaptchaのコールバック関数の探し方

Logo of CapSolver

Sora Fujimoto

AI Solutions Architect

23-Sep-2025

各バージョンのreCaptchaのコールバック関数の探し方

⚠️ すべてのウェブサイトが異なるため、以下の方法で問題が解決しない場合は、
ご自身でさらに調査してください。

APIを通じて正常に認識されたgRecaptchaResponse値を取得した後、Seleniumなどのシミュレーションソフトウェアを使用している場合、Webページに正常に認識されたことを伝えるためにコールバック関数を実行する必要があります。そこで、この関数の探し方を学びましょう。

注:場合によっては、コールバック関数が存在しないこともあります。その場合は、g-recaptcha-responseコンテナに直接値を代入してフォームを送信できます。

方法1:コンソール要素内を検索

表示されているページを開き、F12キーを押してコンソールを開き、ElementsでCtrl+Fキーを押して検索し、キーワード「data-callback」を検索します。

ご覧のように、ここのコールバック関数はonSuccessです。Seleniumでは、この関数を実行するだけです。

見つからない場合は、混乱しているか、その他の状況が考えられるため、他の方法を試すことができます。

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

方法2:recaptcha-v3シリーズに適用可能

方法1と同様に、キーワード「grecaptcha.render」を検索します。

コールバック関数がcallbackである類似のコードを探します。

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

方法3:コンソール内を検索

F12キーを押してコンソールを開き、「___grecaptcha_cfg.clients」と入力します。エラーが報告された場合は、WebページにreCaptchaがロードされていません。

通常、多くのノードがあります。違いに注意する必要があります。ここでは、onSuccessが探しているコールバック関数です。

方法4:自動検索機能による検索

上記の方法を実行するのが困難な場合は、自動検索関数を定義して検索してみてください。
F12キーを押してコンソールを開き、以下の自動定義関数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()

次に、コンソールでこの関数findRecaptchaClients()を実行して、対応する関数を探します。

js Copy
[
  {
    "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 Copy
___grecaptcha_cfg.clients.xxxxxxxxx.xxxxx.xxxxx.callback(gRecaptchaResponse)

例を示しましょう。このウェブサイトを例に、「___grecaptcha_cfg.clients」を入力して検索を展開すると、ここのコールバック関数promise-callbackが無名関数f(token)であることがわかります。

右クリックして「プロパティパスのコピー」をクリックして、このノードのパスをコピーできます。

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

入力したばかりの___grecaptcha_cfg.clientsを追加すると、この関数の完全なパスを取得できます。

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

最後に、上記で説明した実行方法と同じで、通常の関数として実行するだけです。

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

Capsolverチーム 💜

コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。

もっと見る

無制限のキャプチャを最高のキャプチャソルバーで解く
無制限のキャプチャを最高のキャプチャソルバーで解く

最高のキャプチャソルバーを使って、無制限のキャプチャをスムーズに解く方法を学び、キャプチャ解決の設定と自動化を効果的にするための詳細なガイド

reCAPTCHA
Logo of CapSolver

Sora Fujimoto

20-Jan-2026

最適なreCAPTCHAソルバー2026 オートメーション & ウェブスクラピング向け
最高のreCAPTCHAソルバー 2026 オートメーション & ウェブスクレイピング用

2026年のオートメーションやウェブスクレイピングに最適なreCAPTCHAソルバーを発見する。それらがどのように機能するかを学び、適切なものを選んで、ボット検出を先んじる。

reCAPTCHA
Logo of CapSolver

Emma Foster

15-Jan-2026

reCAPTCHAの解き方 C++で: 完全ガイド
reCAPTCHAの解き方 C++で: 完全ガイド

reCAPTCHAをC++で解く方法を学びましょう。CapSolver APIを使用して、プロジェクトの設定、タスクの作成、および実践的な例を用いてタスク結果を取得する方法をカバーした完全なガイドです。

reCAPTCHA
Logo of CapSolver

Ethan Collins

14-Jan-2026

リカプチャをNode.jsで解く方法 | 2024年のガイド
reCAPTCHAをNode.jsで解く方法|2026年のガイド

このガイドでは、Node.jsと解決ツールを使用して、reCAPTCHA v2とv3を簡単に解決する方法を学びます。今日から自動化のスキルを向上させましょう!

reCAPTCHA
Logo of CapSolver

Aloísio Vítor

05-Jan-2026

reCAPTCHA v2 の解決を自動化するチュートリアル: CapSolver で
reCAPTCHA v2の解決を自動化する:CapSolverを使ったチュートリアル

CapSolverを使って、reCAPTCHA v2を簡単に自動化する方法を確認してみましょう

reCAPTCHA
Logo of CapSolver

Aloísio Vítor

05-Jan-2026

パペットリー レカプチャソルバー: 細かいガイド
パペットゥイア reCAPTCHA ソルバー: 完全なガイド

パペットリヤーをreCAPTCHAソルバーとして使用する方法と、ワークフローに統合するためのさまざまな方法について探っていきます。

reCAPTCHA
Logo of CapSolver

Sora Fujimoto

04-Jan-2026