Перейти к содержимому
СтатусПанель

Руководства

Как определить тип капчи

Эта страница переведена с китайской версии машинным переводом и может содержать ошибки. Приоритет имеет китайская версия.

Выбор правильного типа задачи начинается с того, чтобы распознать капчу. Самый надёжный способ — открыть инструменты разработчика в браузере (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 есть size=invisible v2 невидимая версия, добавьте в задачу "isInvisible": true
recaptcha/api.js?render=SITE_KEY (render не равен explicit) v3 обычная версия
recaptcha/enterprise.js без параметра render или с render=explicit v2 Enterprise
recaptcha/enterprise.js?render=SITE_KEY v3 Enterprise

Примеры:

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 Enterprise

Невидимая v2 иногда проходит только с типом задачи для v3, поэтому попробуйте оба варианта.

Также можно выполнить в консоли (Console) следующий код: он выведет все reCAPTCHA на странице с версией, ключом сайта, адресом страницы и функцией обратного вызова:

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.

Обе технологии принадлежат 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): запрос пройдёт, и проходить проверку не придётся.