reCAPTCHA использует файлы cookie для отслеживания сеансов, оценки рисков и управления состоянием задач. Отсутствие или неправильное использование файлов cookie приводит к сбоям в решении, низким оценкам и повторным проблемам. В этом руководстве описаны все файлы cookie, которые использует reCAPTCHA, как сеансы влияют на оценку, а также практическое управление файлами cookie для автоматизации.
Файлы cookie, которые устанавливает и использует reCAPTCHA
файлы cookie, специфичные для reCAPTCHA
| печенье | Домен | Цель | Продолжительность жизни |
|---|---|---|---|
_GRECAPTCHA |
.google.com |
Межсайтовое состояние reCAPTCHA | 6 месяцев |
rc::a |
Целевой сайт | Данные анализа рисков (холст, хэш поведения мыши) | Сессия |
rc::b |
Целевой сайт | Данные анализа рисков (поведенческие сигналы) | Сессия |
rc::c |
Целевой сайт | Данные анализа рисков (сроки) | Сессия |
rc::d-15# |
Целевой сайт | Бросьте вызов настойчивости государства | Сессия |
Файлы cookie учетной записи Google (влияют на оценку)
| печенье | Домен | Цель | Влияние на оценку |
|---|---|---|---|
SID |
.google.com |
Идентификатор сеанса Google | от +0,1 до +0,3 |
HSID |
.google.com |
Идентификатор сеанса только для HTTP | Часть доверия сеанса |
SSID |
.google.com |
Идентификатор безопасного сеанса | Часть доверия сеанса |
NID |
.google.com |
Google предпочтения/session | от +0,05 до +0,1 |
1P_JAR |
.google.com |
Персонализация рекламы Google | Незначительный сигнал доверия |
Сторонние файлы cookie, используемые reCAPTCHA
| печенье | Домен | Цель |
|---|---|---|
CONSENT |
.google.com |
Состояние согласия на использование файлов cookie |
AEC |
.google.com |
Зашифрованный рекламный файл cookie |
SOCS |
.google.com |
Настройки согласия на использование файлов cookie |
Как файлы cookie влияют на оценку reCAPTCHA
Свежий сеанс (без файлов cookie)
New browser session, all cookies cleared
↓
reCAPTCHA JavaScript loads
↓
No _GRECAPTCHA → First-time visitor signal
No SID/HSID → No Google account trust
No rc:: cookies → No behavioral history
↓
Starting risk score: lower baseline (0.3-0.5 for v3)
↓
Behavioral analysis must compensate for lack of history
↓
Result: More likely to receive visible challenge (v2)
Lower score (v3)
Возврат сеанса (с файлами cookie)
Existing browser session with cookies
↓
reCAPTCHA JavaScript loads
↓
_GRECAPTCHA found → Returning visitor
SID/HSID found → Google account trust
rc:: cookies found → Previous behavioral data
↓
Starting risk score: higher baseline (0.5-0.7 for v3)
↓
Behavioral analysis reinforces cookie-based trust
↓
Result: More likely to auto-pass (v2)
Higher score (v3)
Управление файлами cookie в автоматизации
Стратегия 1. Постоянная банка файлов cookie
Сохраняйте файлы cookie для всех запросов, чтобы повысить доверие к сеансу:
import requests
import pickle
import os
class CookieManager:
"""Manage cookies for reCAPTCHA sessions."""
def __init__(self, cookie_file="cookies.pkl"):
self.cookie_file = cookie_file
self.session = requests.Session()
self.load_cookies()
def load_cookies(self):
"""Load cookies from disk if they exist."""
if os.path.exists(self.cookie_file):
with open(self.cookie_file, "rb") as f:
self.session.cookies = pickle.load(f)
def save_cookies(self):
"""Save cookies to disk for next session."""
with open(self.cookie_file, "wb") as f:
pickle.dump(self.session.cookies, f)
def visit_page(self, url):
"""Visit a page to collect cookies."""
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/120.0.0.0 Safari/537.36",
}
response = self.session.get(url, headers=headers, timeout=15)
self.save_cookies()
return response
def get_recaptcha_cookies(self):
"""Get cookies relevant to reCAPTCHA."""
relevant = {}
for cookie in self.session.cookies:
if cookie.name in ["_GRECAPTCHA", "SID", "HSID", "SSID", "NID"]:
relevant[cookie.name] = {
"value": cookie.value[:20] + "...",
"domain": cookie.domain,
"expires": cookie.expires,
}
if cookie.name.startswith("rc::"):
relevant[cookie.name] = {
"value": cookie.value[:20] + "...",
"domain": cookie.domain,
}
return relevant
# Usage
cm = CookieManager("recaptcha_session.pkl")
cm.visit_page("https://https://staging.example.com/qa-login") # Build cookies
print(cm.get_recaptcha_cookies())
Стратегия 2: пересылка файлов cookie в Selenium
from selenium import webdriver
import json
def setup_cookies(driver, cookie_file="selenium_cookies.json"):
"""Load and apply saved cookies to a Selenium session."""
if not os.path.exists(cookie_file):
return
with open(cookie_file, "r") as f:
cookies = json.load(f)
for cookie in cookies:
# Selenium requires the domain to match current page
try:
driver.add_cookie(cookie)
except Exception:
pass # Skip cookies for different domains
def save_cookies(driver, cookie_file="selenium_cookies.json"):
"""Save current cookies for future sessions."""
cookies = driver.get_cookies()
with open(cookie_file, "w") as f:
json.dump(cookies, f)
# Usage
driver = webdriver.Chrome()
driver.get("https://example.com")
setup_cookies(driver) # Apply saved cookies
driver.refresh() # Reload with cookies
# After CAPTCHA solving...
save_cookies(driver) # Save for next run
Стратегия 3: пересылка файлов cookie в Puppeteer
const puppeteer = require("puppeteer");
const fs = require("fs");
async function manageCookies(page, cookieFile = "cookies.json") {
// Load cookies if file exists
if (fs.existsSync(cookieFile)) {
const cookies = JSON.parse(fs.readFileSync(cookieFile));
await page.setCookie(...cookies);
}
// Save cookies after page interaction
const saveCookies = async () => {
const cookies = await page.cookies();
fs.writeFileSync(cookieFile, JSON.stringify(cookies, null, 2));
};
return { saveCookies };
}
(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
const { saveCookies } = await manageCookies(page);
await page.goto("https://https://staging.example.com/qa-login");
// ... solve CAPTCHA ...
await saveCookies();
await browser.close();
})();
Требования к сеансу для решения на основе API
При использовании CaptchaAI решатель генерирует токены в своей собственной среде. Целевой веб-сайт проверяет токен без проверки файлов cookie вашего браузера. Однако некоторые реализации добавляют дополнительную проверку:
Стандартная reCAPTCHA (большинство сайтов)
Пересылка файлов cookie не требуется. CaptchaAI генерирует действительный токен, используя только sitekey и pageurl:
import requests
import time
API_KEY = "YOUR_API_KEY"
# Standard solve — no cookies needed
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://https://staging.example.com/qa-login",
"json": 1,
})
Реализации, зависящие от файлов cookie
Некоторые сайты с высоким уровнем безопасности проверяют, что сеанс, отправляющий токен, соответствует сеансу, в котором был загружен виджет reCAPTCHA. В этих случаях:
- Загрузите страницу в реальном браузере, чтобы установить файлы cookie.
- Извлеките ключ сайта из загруженной страницы
- Отправьте заявку на CaptchaAI, указав sitekey и pageurl.
- Внедрить возвращенный токен в тот же сеанс браузера.
- Отправьте форму из браузера (поддерживая цепочку файлов cookie)
from selenium import webdriver
from selenium.webdriver.common.by import By
import requests
import time
API_KEY = "YOUR_API_KEY"
# Step 1: Load page in real browser (establishes cookies)
driver = webdriver.Chrome()
driver.get("https://secure-site.com/login")
# Step 2: Extract sitekey
widget = driver.find_element(By.CSS_SELECTOR, "[data-sitekey]")
sitekey = widget.get_attribute("data-sitekey")
# Step 3: Solve via CaptchaAI
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": driver.current_url,
"json": 1,
})
task_id = submit.json()["request"]
for _ in range(60):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY,
"action": "get",
"id": task_id,
"json": 1,
}).json()
if result.get("status") == 1:
token = result["request"]
break
# Step 4: Inject token into browser session (same cookies)
driver.execute_script(
f'document.getElementById("g-recaptcha-response").value = "{token}";'
)
# Step 5: Submit form from same browser session
driver.find_element(By.CSS_SELECTOR, "form").submit()
Влияние блокировки сторонних файлов cookie
Прекращение поддержки сторонних файлов cookie в Chrome
Chrome постепенно отказывается от сторонних файлов cookie. Это влияет на reCAPTCHA, поскольку _GRECAPTCHA установлен на .google.com и считывается из стороннего контекста.
Ответ Google:
- reCAPTCHA v3 и Enterprise используют собственное исполнение JavaScript.
- Файлы cookie переходят в хранилище
Partitioned(CHIPS). - Файлы cookie
rc::уже являются основными (установлены в домене целевого сайта).
Влияние на автоматизацию:
- Минимальный. Решение на основе API не затрагивается, поскольку CaptchaAI генерирует токены на стороне сервера.
- При автоматизации на основе браузера могут наблюдаться незначительные изменения в оценках, поскольку Google корректирует свою стратегию использования файлов cookie.
Устранение неполадок с файлами cookie
| Проблема | Причина | Решение |
|---|---|---|
| reCAPTCHA v2 всегда демонстрирует проблемы с имиджем | Нет сеансовых файлов cookie, низкое доверие | Сохранять файлы cookie во всех запросах |
| Оценка reCAPTCHA v3 всегда < 0,3 | Свежая сессия каждый раз | Поддерживать банку с печеньем |
| Токен работает один раз, затем не работает при повторной попытке | Несоответствие файлов cookie сеанса | Используйте тот же сеанс для загрузки страницы и отправки |
| «Проверка Cookie/session не удалась» | Сайт проверяет цепочку файлов cookie | Используйте передача токена во внутренний QA endpoint на основе браузера |
| Виджет reCAPTCHA не загружается | Сторонние файлы cookie заблокированы | Разрешить файлы cookie google.com |
Часто задаваемые вопросы
Нужно ли мне передавать файлы cookie CaptchaAI?
Нет. CaptchaAI генерирует токены в собственной оптимизированной среде и не нуждается в файлах cookie вашего браузера. Вам нужно предоставить только sitekey и pageurl. Сгенерированный токен действителен для отправки от любого клиента.
Срок действия файлов cookie истекает и требуется ли обновление?
Да. Срок действия _GRECAPTCHA составляет 6 месяцев, но срок действия файлов cookie сеанса rc:: истекает при закрытии браузера. Файлы cookie учетной записи Google (SID, HSID) хранятся 2 года, но могут быть признаны Google недействительными. Для автоматизации сохраняйте файлы cookie на диске и периодически обновляйте их при посещении целевого сайта.
Могу ли я использовать файлы cookie из одного браузера в другом?
Да, с ограничениями. Файлы cookie можно экспортировать (в формате JSON или Netscape) и импортировать в запросы, сеансы Selenium или Puppeteer. Однако Браузерные сигналы будет отличаться, что может обнаружить reCAPTCHA. Файлы cookie обеспечивают бонус доверия, но новая среда браузера может его компенсировать.
Почему очистка файлов cookie усложняет работу reCAPTCHA?
При очистке файлов cookie удаляются файлы cookie доверия _GRECAPTCHA и файлы cookie истории поведения rc::. reCAPTCHA рассматривает вас как совершенно нового посетителя без истории, начиная оценку риска с более низкого базового уровня. Вот почему просмотр в режиме инкогнито/private часто вызывает больше проблем с CAPTCHA.
Краткое содержание
reCAPTCHA использует файлы cookie для отслеживания сеансов (файлы cookie rc::), межсайтового доверия (_GRECAPTCHA) и привязки учетных записей Google (SID, HSID). Новые сеансы без файлов cookie дают более низкие оценки и более сложные задачи. Для решения на основе API сCaptchaAI, файлы cookie не требуются — решатель генерирует действительные токены, используя только ключ сайта и URL-адрес страницы. Для реализаций, зависящих от файлов cookie, используйте подход на основе браузера: загрузите страницу (установив файлы cookie), решите с помощью CaptchaAI, внедрите токен и отправьте его из того же сеанса браузера.
Похожие статьи
- Как решить обратный вызов Recaptcha V2 с помощью API
- Cloudflare Turnstile Recaptcha V2. Обработка на той же площадке.
- Механизм обратного вызова Recaptcha V2