適切なタスクタイプを選ぶ第一歩は、キャプチャを見分けることです。最も確実なのは、ブラウザの開発者ツール(F12)を開き、Network(ネットワーク)パネルでページがどのキャプチャのスクリプトを読み込んでいるかを確認する方法です。見た目から判断することもできます。
見た目で見分ける
Section titled “見た目で見分ける”各キャプチャがウェブページ上でどう見えるかを示したアニメーションのイラストです(スクリーンショットではありません)。カードをクリックすると対応するタスクタイプのページを開きます。見た目で判断しにくい場合は、下の早見表と Network パネルで確認してください。
- 私はロボットではありませんreCAPTCHAプライバシー - 利用規約
- メールアドレスパスワード••••••••送信reCAPTCHA によって保護されていますプライバシー - 利用規約
- "objects": [1, 5, 8]次の画像をすべて選択してください:車該当するものがない場合は[スキップ]をクリックしてください012345678確認
- 私は人間ですhCaptchaプライバシー - 利用規約
- "top_k": [0, 3, 4, 6, 7]自転車が写っている画像をすべてクリックしてください012345678スキップ確認
- メールアドレス[email protected]確認中...人間であることを確認してください成功しました!CLOUDFLAREプライバシー • 利用規約ログイン
- しばらくお待ちください...Example Domain×example.com
example.com
人間であることを確認しています。数秒かかる場合があります。
確認中...人間であることを確認してください成功しました!CLOUDFLAREプライバシー • 利用規約example.com は、続行する前に接続のセキュリティを確認する必要があります。
Use the arrows to change the number of objects until it matches the left image (1 of 1)
Submit3 ×Match This!←→- "top_k": [1, 4, 5, 6, 7]
人間であることを確認します
すべて選択: 帽子
012345678確認 - "text": "LMResm"
| 見えるもの | 種類 | 使うタスクタイプ |
|---|---|---|
| 「私はロボットではありません / 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 画像認識 |
| 歪んだ英数字が書かれた画像 | 文字キャプチャ | 画像の英数字認識 |
reCAPTCHA のバージョン
Section titled “reCAPTCHA のバージョン”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、コールバック関数を一覧表示できます。
// 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 など)に切り替えればリクエストでき、チャレンジの突破は不要です。