Решения CAPTCHA существуют в двух формах: токены, которые вы добавляете при отправке форм, и файлы cookie, которые предоставляют доступ на уровне сеанса. Выбор правильного подхода зависит от того, с какой CAPTCHA вы столкнулись и как целевой сайт ее проверяет.
С первого взгляда
| Аспект | На основе токенов | На основе файлов cookie |
|---|---|---|
| Выход | Строковый токен (более 500 символов) | Файл cookie браузера (qa_validation_cookie и т. д.) |
| Используется для | reCAPTCHA v2/v3, hCaptcha, Cloudflare Turnstile | Страницы страница Cloudflare-защиты в staging |
| Как это используется | Внедряется в поле формы или тело POST. | Отправляется с последующими HTTP-запросами. |
| Продолжительность жизни | 60-120 секунд | от 30 минут до 24 часов |
| Многоразовый | Нет (одноразовое использование) | Да (на время сеанса) |
| Требуется браузер | Только для добычи | Для решения (нужен полноценный браузер) |
Решение на основе токенов
Как это работает
- Извлеките ключ сайта со страницы
- Отправьте ключ сайта + URL-адрес страницы в CaptchaAI
- Получить строку токена
- Вставьте токен в скрытое поле формы.
- Отправить форму
Какие CAPTCHA используют токены
- reCAPTCHA v2: токен попадает в текстовую область
g-recaptcha-response. - reCAPTCHA v3: то же поле, но также требуются
action(иenterprise=1для Enterprise-сайткеев). - hCaptcha: токен переходит в
h-captcha-response. - Cloudflare Turnstile: токен переходит в
cf-turnstile-response.
Выполнение
import requests
import time
API_KEY = "YOUR_API_KEY"
# 1. Solve
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "6Le-wvkSAAAAAPBMR...",
"pageurl": "https://https://staging.example.com/qa-login",
"json": "1",
}).json()
task_id = resp["request"]
# 2. Poll
token = None
for _ in range(24):
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["status"] == 1:
token = result["request"]
break
# 3. Submit form with token (no browser needed)
form_response = requests.post("https://https://staging.example.com/qa-login", data={
"email": "user@example.com",
"password": "password",
"g-recaptcha-response": token,
})
Ключевые характеристики
- Для отправки браузер не требуется: вы можете внедрить токен непосредственно в HTTP-запрос POST.
- Кратковременно: срок действия токенов истекает через 60–120 секунд — решите и используйте немедленно.
- Одноразовое использование: каждый токен работает один раз; решить еще раз для каждой отправки формы
- Проверка на стороне сервера: целевой сайт отправляет токен в Google/Cloudflare/hCaptcha для проверки.
Решение на основе файлов cookie
Как это работает
- Отображается страница вызова (страница Cloudflare-защиты в staging, JS Challenge).
- Браузер решает проблему (может включать внутренний Cloudflare Turnstile)
- Сервер устанавливает файл cookie сеанса (
qa_validation_cookie). - Все последующие запросы с этим файлом cookie пропускают вызов.
Какие CAPTCHA используют файлы cookie
- Страницы страница Cloudflare-защиты в staging: файл cookie
qa_validation_cookie - JS Challenge: конкурс Cloudflare, посвященный только JavaScript.
- Некоторые проблемы WAF: различные брандмауэры веб-приложений.
Выполнение
from selenium import webdriver
import requests
import time
# 1. Solve the challenge in a browser
driver = webdriver.Chrome()
driver.get("https://example.com/protected")
# Wait for challenge to complete (manually or with CaptchaAI)
time.sleep(10) # Or use CaptchaAI передача токена во внутренний QA endpoint
# 2. Extract cookies from browser
cookies = driver.get_cookies()
qa_validation_cookie = next(
(c for c in cookies if c["name"] == "qa_validation_cookie"), None
)
user_agent = driver.execute_script("return navigator.userAgent")
driver.quit()
# 3. Use cookies for subsequent requests (no browser needed)
session = requests.Session()
session.headers.update({"User-Agent": user_agent})
for cookie in cookies:
session.cookies.set(cookie["name"], cookie["value"])
# All requests now pass the challenge
for page in range(1, 50):
resp = session.get(f"https://example.com/api/data?page={page}")
print(f"Page {page}: {resp.status_code}")
Ключевые характеристики
- Для решения требуется браузер: для задачи требуется полнофункциональная браузерная среда.
- Долговечность: файлы cookie сохраняются от 30 минут до 24 часов.
- Многократное использование: одно решение предоставляет доступ ко многим запросам.
- Привязка к IP: файл cookie привязан к IP-адресу, который решил задачу.
- Привязка к UA: Пользовательский агент должен совпадать с тем, который использовался при решении.
Когда какой использовать
| Сценарий | Подход | Почему |
|---|---|---|
| Форма входа с reCAPTCHA | Токен | Отправить токен с данными формы |
| Парсинг сайта, защищенного Cloudflare | печенье | Одно решение, много запросов страниц |
| Отправка формы через Cloudflare Turnstile | Токен | Внедрить в cf-turnstile-response |
| Доступ к API Cloudflare | печенье | Повторное использование файлов cookie для всех вызовов API |
| Отправка нескольких форм | Токен (каждый раз) | Каждой форме нужен новый токен |
| Массовое парсинг одного и того же домена | печенье | Решить один раз, очищать до истечения срока действия файла cookie |
Гибридный подход
Некоторые сайты используют оба варианта: страницу страница Cloudflare-защиты в staging (файл cookie), защищающую форму с reCAPTCHA (токен).
# Step 1: Get past Cloudflare (cookie)
session = get_browser_validation_session("https://example.com")
# Step 2: Load the form (using the cookie session)
html = session.get("https://example.com/submit").text
sitekey = extract_sitekey(html)
# Step 3: Solve reCAPTCHA (token)
token = solve_recaptcha(sitekey, "https://example.com/submit")
# Step 4: Submit form (cookie + token)
resp = session.post("https://example.com/submit", data={
"data": "value",
"g-recaptcha-response": token,
})
Сводка сравнения
| Особенность | Токен | печенье |
|---|---|---|
| Решите стоимость | За отправку формы | За сеанс (амортизируется) |
| Решить время | 10–30 секунд за токен | 10-30 секунд один раз |
| Запросов на решение | 1 | Многие (до истечения срока действия) |
| Гибкость IP | Токен работает с любого IP | Файл cookie, связанный с решением IP |
| Браузер для использования | Не требуется | Не требуется (только файл cookie) |
| Риск истечения срока действия | 60-120с | 30 мин - 24 часа |
Часто задаваемые вопросы
Могу ли я преобразовать CAPTCHA на основе токенов в основанную на файлах cookie?
Нет. Подход зависит от способа проверки сайта. reCAPTCHA всегда использует токены; страница Cloudflare-защиты в staging всегда использует файлы cookie.
Что дешевле для парсинга больших объемов?
Использование файлов cookie контролируемая проверка намного дешевле, если они доступны. Одно решение охватывает тысячи запросов. На основе токенов требуется решение для каждой отправки формы.
CaptchaAI обрабатывает оба?
Да. CAPTCHA на основе токенов возвращает строку токена. Для страниц страница Cloudflare-защиты в staging вы можете использовать решатель Turnstile, чтобы получить токен, необходимый для выполнения задания, а затем извлечь полученный файл cookie.
Решайте CAPTCHA с помощью CaptchaAI
Получите ключ API по адресуcaptchaai.com.
Связанные руководства
- страница Cloudflare-защиты в staging qa_validation_cookie Руководство по использованию файлов cookie
- Извлечение параметров reCAPTCHA
- Cloudflare Turnstile против hCaptcha против reCAPTCHA