コンテンツにスキップ
ステータスダッシュボード

ガイド

キャプチャの種類を見分ける

このページは中国語版から機械翻訳されたもので、不正確な箇所がある可能性があります。中国語版を正としてください。

適切なタスクタイプを選ぶ第一歩は、キャプチャを見分けることです。最も確実なのは、ブラウザの開発者ツール(F12)を開き、Network(ネットワーク)パネルでページがどのキャプチャのスクリプトを読み込んでいるかを確認する方法です。見た目から判断することもできます。

各キャプチャがウェブページ上でどう見えるかを示したアニメーションのイラストです(スクリーンショットではありません)。カードをクリックすると対応するタスクタイプのページを開きます。見た目で判断しにくい場合は、下の早見表と Network パネルで確認してください。

見えるもの 種類 使うタスクタイプ
「私はロボットではありません / I’m not a robot」のチェックボックス reCAPTCHA v2 reCAPTCHA v2
チェックボックスはなく、送信を押すと画像の問題が表示される。右下に reCAPTCHA のバッジがある reCAPTCHA v2 非表示版(または v3) 下記「reCAPTCHA のバージョン」を参照
操作が一切なく、右下に reCAPTCHA のバッジだけがある reCAPTCHA v3 reCAPTCHA v3
「私は人間です」のチェックボックスがあり、画像の問題に hCaptcha と表示されている hCaptcha hCaptcha
フォームの中に Cloudflare の認証ボックスが埋め込まれており、チェック後もページが遷移しない Cloudflare Turnstile Turnstile
ページ全体に「お待ちください… / 接続を確認しています」と表示され、自動で遷移する Cloudflare チャレンジページ Cloudflare チャレンジページ
Arkose Labs のパズルや画像選択問題(「正しい向きの画像を選んでください」など) FunCaptcha FunCaptcha 画像認識
歪んだ英数字が書かれた画像 文字キャプチャ 画像の英数字認識

Network パネルで api.js または enterprise.js を検索します。

読み込まれるスクリプト バージョン
recaptcha/api.js、render パラメータなし、または render=explicit v2 通常版
上記と同じで、anchor リクエストの URL に size=invisible がある v2 非表示版。タスクに "isInvisible": true を追加
recaptcha/api.js?render=サイトキー(render が explicit ではない) v3 通常版
recaptcha/enterprise.js、render パラメータなし、または render=explicit v2 エンタープライズ版
recaptcha/enterprise.js?render=サイトキー v3 エンタープライズ版

例:

https://www.google.com/recaptcha/api.js?onload=onloadcallback&render=explicit → v2 普通版
https://www.google.com/recaptcha/api.js?render=6LdyC2cUAAAAACGuDKpXeDorzUDWXmdqeg-xy696 → v3 普通版
https://www.google.com/recaptcha/enterprise.js?render=explicit → v2 企业版

v2 非表示版は、v3 のタスクタイプでないと通らない場合があります。両方試してみてください。

コンソール(Console)で次のコードを実行すると、ページ上のすべての reCAPTCHA について、バージョン、サイトキー、ページ URL、コールバック関数を一覧表示できます。

find-recaptcha-clients.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();

実行結果の例:

[
{
"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"
}
]

比較には Google 公式のデモページが使えます。v2 通常版は https://www.google.com/recaptcha/api2/demo、v2 非表示版は https://www.google.com/recaptcha/api2/demo?invisible=true です。

Turnstile と Cloudflare チャレンジページ

Section titled “Turnstile と Cloudflare チャレンジページ”

どちらも Cloudflare のものですが、別物です。

  • Turnstile は、ページのフォームに埋め込まれた認証ボックスです。認証が完了するとチェックマークが付き、ページ自体は遷移しません。ページは challenges.cloudflare.com/turnstile/v0/api.js を読み込みます。Turnstile を使います。
  • Cloudflare チャレンジページ は、ページ全体が Cloudflare の確認ページに置き換わり、「お待ちください…」「xx.com は接続のセキュリティを確認する必要があります」と表示されます。中に認証ボックスが含まれることもあります。通過すると本来のページへ自動で遷移します。ソースに __cf_chl_rt_tk または cdn-cgi/challenge-platform が含まれています。Cloudflare チャレンジページ を使います。

プログラムからのリクエストでは 403 と「Just a moment…」が返るのに、ブラウザでは直接開ける場合は、多くの場合 TLS フィンガープリントでブロックされているだけです。ブラウザの TLS フィンガープリントを模倣できるライブラリ(curl_cffi など)に切り替えればリクエストでき、チャレンジの突破は不要です。