Scarnox · Blog

Прокси или без прокси при решении капчи: какой тип задачи нужен

Scarnox предлагает PopularCaptcha в двух вариантах: без прокси, когда Scarnox решает капчу через собственную сеть, и с прокси, когда вы передаете прокси, который использует ваш бот. Оба возвращают токен в одной и той же структуре ответа, и оба бесплатны, если решение не удалось. Единственное различие в запросе — прокси.

Вариант без прокси — правильная отправная точка для большинства сайтов. Отправляйте свой прокси, только если сайт привязывает токен к IP-адресу.

Два типа задач

Тип задачиЧто отправлять
PopularCaptchaTaskProxylesssitekey и URL страницы
PopularCaptchaTask (вариант с прокси)sitekey, URL страницы и ваш proxy

Оба — задачи PopularCaptcha. Остальная часть запроса, ответ и обработка токена одинаковы.

Начните с варианта без прокси

Решения без прокси выполняются в собственной сети Scarnox. Интеграция — самая простая из возможных, и для большинства сайтов токен работает независимо от того, с какого IP его потом отправят. Если не уверены, какой вариант нужен, начните отсюда:

{
  "captcha_type": "PopularCaptchaTaskProxyless",
  "site_key": "10000000-ffff-ffff-ffff-000000000001",
  "site_url": "https://example.com/signup"
}

Отправляйте прокси, когда токен привязан к IP

Некоторые сайты проверяют, что IP, который решал капчу, совпадает с IP, который отправляет форму. Симптом очевиден: токены приходят без ошибок, но сайт каждый раз их отклоняет. Решение — решать капчу через тот же прокси, который ваш бот использует для остальной части сессии:

{
  "captcha_type": "PopularCaptchaTask",
  "site_key": "10000000-ffff-ffff-ffff-000000000001",
  "site_url": "https://example.com/signup",
  "proxy": "http://user:pass@203.0.113.10:8080"
}

Формат прокси: http://user:pass@host:port. Используйте один и тот же прокси для решения и для отправки и держите его закрепленным на всю сессию. Смена прокси между решением и отправкой возвращает несовпадение IP.

Как решить

Пройдите эти вопросы по порядку:

  1. Работает ли токен, если отправить его с другой машины? Если да, используйте вариант без прокси.
  2. Отклоняет ли сайт токены только тогда, когда отправляющий IP отличается от решающего? Если да, отправляйте прокси.
  3. Использует ли сайт cookie сессии или проверку устройства, привязанную к одному IP? Если да, отправляйте прокси и сохраняйте тот же IP на всю сессию.

Проверьте оба варианта на бесплатном пробном периоде, прежде чем выбрать. Создайте аккаунт и начните с бесплатного пробного баланса, карта не нужна, затем запустите один и тот же поток по одному разу для каждого типа.

Если ваш прокси нерабочий

Неудачное решение бесплатно. Если прокси не работает или заблокирован целевым сайтом, решение не удается, и с вас за него не берут плату. Проверьте прокси до запуска, убедитесь в его формате и в том, что цель не блокирует его диапазон адресов. Прокси, который работает для браузера, но не проходит решение, обычно имеет проблему с форматом.

Храните учетные данные прокси вне логов

Адрес прокси с паролем — секрет. Храните его в переменной окружения или в менеджере секретов. Не выводите в логи, не коммитьте и не вставляйте в отчеты об ошибках. Если логируете запрос на решение для отладки, сначала удалите поле proxy.

Выбор прокси для варианта с прокси

Решение работает с любым прокси, который вы отправите, но токен полезен, только если форму отправляет тот же IP. Используйте резидентский или статический адрес, которым вы управляете, на всю сессию, а не пул, который меняется при каждом запросе. Сайты, которые привязывают токены к IP, обычно также привязывают сессию, поэтому ротирующийся пул ломает поток дважды.

Как насчет скорости?

Оба варианта возвращают токен из одного блокирующего запроса, без цикла опроса. Таймаут одинаковый: около 185 секунд. Выбирайте вариант по вопросу об IP, а не по скорости.

Сессии и прокси на практике

Используйте один и тот же прокси от первого запроса сессии до последнего. Типичный поток загружает страницу регистрации, решает капчу и отправляет форму. Если загрузка страницы идет через один адрес, а решение через другой, сайт с привязкой к IP может отклонить токен, хотя все остальное выглядит правильно.

Храните одну настройку прокси в коде и передавайте ее каждому шагу, который обращается к сайту. Если другие части задачи ротируют прокси для парсинга, дайте потоку с капчей собственный закрепленный прокси. Смешивание двух подходов — одна из самых частых причин, по которой токен, работавший в тестах, падает в продакшене.

Задавайте поле proxy только для варианта, который его использует. Отправка прокси с типом задачи без прокси не улучшает решение, а затрудняет понимание того, какой режим использовался, при чтении логов.

Чтение логов для правильного ответа

Если не уверены, какой режим нужен сайту, запустите оба на одной и той же странице и сравните. Логируйте, был ли принят каждый токен, вместе с типом задачи и тем, отправлялся ли прокси. Сайт, который стабильно принимает токены без прокси, не нуждается в варианте с прокси. Сайт, который отклоняет их только в определенных запусках, указывает на проверку IP. Пусть решают логи, а не догадки.

Следующие шаги

Начните с бесплатного пробного баланса, карта не нужна: создайте аккаунт и попробуйте оба типа задач на одной странице.