Пустой профиль браузера — главная причина, почему reCAPTCHA внезапно показывает по три-четыре раунда картинок подряд: движок риска Google в первую очередь смотрит на cookies. Ниже — какие cookies и записи задействует reCAPTCHA, как их отсутствие поднимает сложность проверки и что сохранять между запусками для более лёгких заданий — и через браузер, и через API CaptchaAI.
Какие cookies и записи задействует reCAPTCHA
Cookies домена Google
Устанавливаются на .google.com и считываются iframe reCAPTCHA:
| Cookie | Домен | Назначение | Срок действия |
|---|---|---|---|
NID |
.google.com |
Настройки Google и уникальный идентификатор | 6 месяцев |
SID / HSID / SSID |
.google.com |
Сессия аккаунта Google (если выполнен вход) | 2 года |
APISID / SAPISID |
.google.com |
Аутентификация API Google | 2 года |
1P_JAR |
.google.com |
Персонализация рекламы Google | 1 месяц |
CONSENT |
.google.com |
Согласие на использование cookies | 17 лет |
Cookies и записи, специфичные для reCAPTCHA
| Ключ / cookie | Домен | Назначение | Срок действия |
|---|---|---|---|
_GRECAPTCHA |
.google.com / .recaptcha.net |
Отслеживание сессии reCAPTCHA | Сессия |
rc::a |
localStorage | Данные анализа риска | Постоянно |
rc::b |
localStorage | Временная метка последней проверки | Сессия |
rc::c |
localStorage | Данные текущей проверки | Сессия |
rc::d-<id> |
localStorage | Данные конкретного виджета | Сессия |
Cookies целевого сайта
Сайт, на котором размещён виджет reCAPTCHA, обычно добавляет свои cookies для сессии и CSRF-защиты:
- ID сессии (
PHPSESSID,session_id) — связывает решённую CAPTCHA с сессией пользователя. - CSRF-токен (
csrf_token,_token) — требуется для отправки формы. - Собственное отслеживание сайта (зависит от сайта) — может влиять на то, когда именно появляется CAPTCHA.
Ограничения между доменами: SameSite, блокировка сторонних cookies, ITP
reCAPTCHA загружается iframe с google.com, а современные браузеры ужесточают политику cookies именно для сторонних доменов:
| Политика браузера | Эффект на reCAPTCHA |
|---|---|
| SameSite=Lax (значение по умолчанию) | Cookies Google по умолчанию не отправляются в iframe reCAPTCHA |
| Блокировка сторонних cookies | reCAPTCHA переключается на recaptcha.net или first-party-режим |
| ITP (Safari) | Cookies Google истекают быстрее, сложные проверки выпадают чаще |
Google компенсирует это доменом recaptcha.net, состоянием в localStorage и first-party-загрузкой скрипта для Enterprise.
Как состояние cookies меняет сложность проверки
Cookies — лишь один из сигналов, которые Google учитывает при оценке риска, но влияет он заметно:
| Состояние cookies | Сложность проверки | Почему |
|---|---|---|
| Выполнен вход в аккаунт Google | Минимальная | Сильный сигнал идентичности |
| Cookies Google есть, входа нет | Низкая–средняя | Видна обычная история просмотров |
| Свежий браузер, cookies Google отсутствуют | Средняя–высокая | Нет истории для оценки риска |
| Cookies заблокированы или удалены | Высокая | Выглядит подозрительно — у обычных браузеров cookies есть |
| Режим инкогнито / приватный режим | Высокая | Нет постоянной идентичности |
Три сценария, которые встречаются на практике чаще всего:
- Лучший случай. В браузере есть
SID,HSID,NIDиз сессии Google с выполненным входом → часто достаточно клика по чекбоксу. - Средний случай. В браузере есть
NIDи1P_JARот обычного просмотра → более простые графические проверки или чекбокс без картинок. - Худший случай. Cookies Google отсутствуют, сессия новая → несколько раундов графических проверок подряд.
Если сложность скачет от запуска к запуску без видимой причины — в первую очередь проверьте, не сбрасывается ли профиль браузера или контейнер между прогонами.
Как работать с cookies и localStorage в автоматизации и через API CaptchaAI
Браузерная автоматизация (Playwright / Puppeteer)
Браузерная автоматизация обрабатывает cookies сама по себе — нужно лишь сохранять и восстанавливать их между запусками. Пример: при парсинге карточек Wildberries или Ozon через Playwright в Docker один и тот же профиль с cookies Google за пару дней просмотра держит reCAPTCHA v2 на уровне «клик по чекбоксу».
# Save cookies after session
cookies = page.context.cookies()
import json
with open("cookies.json", "w") as f:
json.dump(cookies, f)
# Restore cookies in next session
with open("cookies.json") as f:
cookies = json.load(f)
page.context.add_cookies(cookies)
Решение только через API CaptchaAI (без браузера)
Без браузера cookies не влияют на сам процесс решения — CaptchaAI работает в собственной среде. Если сайту после решения нужна непрерывность сессии, cookies передаются отдельным параметром:
POST https://ocr.captchaai.com/in.php
key=YOUR_API_KEY
&method=userrecaptcha
&googlekey=SITE_KEY
&pageurl=https://staging.example.com/qa-login
&cookies=NID=12345;1P_JAR=2026-04-04-12
Параметр необязательный и не влияет на получение токена.
Сохранение записей localStorage (rc::*)
Записи rc::a–rc::d из таблицы выше reCAPTCHA читает сама. Но их стоит сохранять между запусками вместе с cookies — эффект сопоставим:
# Save localStorage
storage = page.evaluate("() => JSON.stringify(localStorage)")
with open("localstorage.json", "w") as f:
f.write(storage)
# Restore localStorage
with open("localstorage.json") as f:
storage = f.read()
page.evaluate(f"Object.entries(JSON.parse('{storage}')).forEach(([k,v]) => localStorage.setItem(k,v))")
Рекомендуемые практики
- Сохранять профиль браузера между запусками — история просмотров → более лёгкие проверки.
- Не очищать cookies между задачами — сохраняет непрерывность оценки риска.
- Переключаться на
recaptcha.net, еслиgoogle.comзаблокирован. - Сохранять localStorage
rc::*вместе с cookies. - Периодически открывать сервисы Google в том же профиле.
Частые вопросы
Что делать, если reCAPTCHA всё равно требует картинки при полном наборе cookies?
Значит, перевешивает другой сигнал: репутация IP, скорость движений мыши, паттерн заполнения формы. Cookies снижают сложность, но не гарантируют checkbox сами по себе.
Обязательно ли передавать параметр cookies при отправке задачи через in.php?
Нет, без него решение проходит штатно — параметр нужен, только если сайту важна непрерывность сессии.
Блокировка сторонних cookies в браузере действительно усложняет reCAPTCHA?
Да. Google не видит историю аккаунта в iframe и чаще переключает reCAPTCHA на recaptcha.net, где проверки сложнее из-за нехватки сигналов.
Отличаются ли требования к cookies у reCAPTCHA v2 и v3?
Механизм похож, но v3 полагается на них сильнее: там нет чекбокса, только числовой score, и слабая идентичность сразу тянет его вниз.
Как долго держатся cookies NID и 1P_JAR и когда их обновлять?
NID живёт около 6 месяцев, 1P_JAR — около месяца. При регулярном использовании профиля оба обновляются сами; для долгоживущих сессий автоматизации стоит время от времени открывать любую страницу Google в этом же профиле.
Поиск неисправностей
| Проблема | Причина | Решение |
|---|---|---|
| Постоянно выпадают сложные графические проверки | Нет cookies / свежий профиль | Наработать профиль с cookies Google, не очищать между запусками |
| reCAPTCHA показывает ошибку «cookies required» | Заблокированы сторонние cookies | Разрешить cookies для google.com или переключиться на recaptcha.net |
| Токен получен, но сессия на сайте не совпадает | Не сохранён cookie сайта (PHPSESSID) |
Сохранять и восстанавливать все cookies, а не только Google |
| Проверка зацикливается и снова просит картинки | localStorage очищен между попытками | Сохранять записи rc::* вместе с cookies |