Парсинг данных в настоящий момент представляется у экспертов в сфере информационных технологий и далёких от всякого рода программирования пользователей как постоянная гонка между разработчиками ботов и владельцами разнообразных сайтов. Одним из главных защитных барьеров, который автоматизированные системы стараются преодолеть, а разработчики — укрепить — это капча. Любой, кто хоть раз занимался сбором данных даже с небольшого сайта, знает, что вопрос «как обойти капчу» всегда был в центре постоянного внимания. Ведь если данную процедуру не выполнить, парсер становится бесполезным набором кода, который упирается в проверки. В данной статье будут разобраны реально работающие стратегии, которые помогут вам пройти проверки капчи, но при этом не потерять деньги на бесконечных бесполезных экспериментах.
Что такое капча?
Капча (в англ. CAPTCHA) — это автоматизированный тест, который предназначен для отличия реального человека от робота. Для владельцев сайтов это главный фильтр, защищающий от спама, брутфорса и накруток, а для разнообразных парсеров — это стоп-фактор.
Выделяют следующие типы капч, которые в настоящее время существенно тормозят парсинг:
- Текстовая (искаженные символы). Является устаревшей, но всё ещё используется на некоторых сайтах. Распознаётся плохо из-за сильных искажений.
- Google reCAPTCHA v2. В настоящее время является одной из самых популярных — в ней просят отметить квадраты с витринами или светофорами.
- Google reCAPTCHA v3. Невидима для пользователя, оценивает его поведение на сайте, присваивая соответствующий рейтинг (score).
- Hcaptcha. Аналог reCAPTCHA, но более дешёвый и конфиденциальный по сравнению с продуктом от Google.
- CloudFlare Turnstile. Умная проверка, которая анализирует сессию и браузерные данные.
Стратегия 1: как сделать так, чтобы капча не появлялась
Самый лучший и дешёвый способ обойти капчу — это сделать так, чтобы она не появлялась вовсе. Работает это по следующему принципу:
- Замедление парсинга. Для этого вместо 100 запросов в секунду выполняют 2-3 c рандомными задержками (time.sleep).
- Имитация пользователя. Парсинг осуществляется через реальный браузер, а не через голый HTTP-запрос, который сайт может посчитать за попытку атаки бота и показать такому «пользователю» капчу для проверки на роботизированность.
- Настройка заголовков. Для этого необходимо отправлять верные User-Agent, Accept-Language и многие другие заголовки.
Такая стратегия идеальная для сайтов, которые нагружают капчей только тех, кто является «подозрительным» - использует прокси, делает много запросов в секунду или же не загружает стили или скрипты. Если после всего проделанного выше капча всё равно появляется, то логично перейти к другим стратегиям.
Стратегия 2: обход капчи через сервисы распознавания
Если капча уже появилась на экране, то самый простой программный способ его решения — это отдать картинку или задание на аутсорс в специализированные сервисы. Работают они по следующему принципу: парсер перехватывает изображение капчи или аудиофайл, отправляет по API в сервис распознавания, где он решается либо нейросетью, либо человеком за копейки. Вам возвращается токен или текст для отправки на сайт, который в последующем вставляется либо в код капчи в коде страницы, либо же вставляется в поле ввода ответа на решённую капчу.
Популярные сервисы для разгадки капчи следующие:
- 2Captcha / RuCaptcha. Считаются самыми известными и обладают поддержкой reCAPTCHA, Hcaptcha и обычного текста. Работают по принципу решения капчи человеком.
- Anti-Captcha. Аналогичный предыдущим сервис, обладающий хорошим API с низкими ценами при больших объёмах загружаемых капч.
- CapSolver. Современный сервис, специализирующийся на решении сложных задач с помощью искусственного интеллекта.
Плюсы у подобной стратегии следующие:
- Высокий процент успеха (99% капч решаются успешно);
- Простота интеграции (API таких сервисов имеют библиотеки для различных языков программирования).
Но за плюсами скрываются и минусы:
- Необходимость вложения большой суммы денег в случай больших объёмов решаемых капч;
- Скорость решения занимает от 5 до 30 секунд, что замедляет парсинг.
Стратегия 3: использование эмуляторов браузера
Современные капчи (в особенности reCAPTCHA v3) анализируют не только то, что пользователь делает, но и цифровой отпечаток его браузера. Они могут проверить, есть ли у вас куки, как двигалась мышь при работе с сайтом и не запущен ли браузер в «безголовом» (headless) режиме. Использование эмуляторов необходимо для того, чтобы эти самые действия создать — простой код на Python не умеет шевелить мышкой или хранить историю браузера, как человек.
Для таких целей используются следующие инструменты:
- Puppeteer (Node.js). Управляет браузером Chrome.
- Praywright. Работает с браузером Chromium, Firefox и Webkit.
- Selenium. Считается классическим, но из-за этого легче обнаруживается.
Работают они по следующему принципу — встроенный скрипт двигает курсор мыши по реальным траекториям и делает клики с задержкой. Одним словом, имитирует действия реального пользователя для прохождения капчи на основе анализа поведения.
Плюсы данной стратегии следующие:
- Меньше срабатывание невидимых капч.
- Возможность обхода сложной системы JS-защиты.
Минусы данной стратегии следующие:
- Ресурсоёмкость. Браузер потребляет много оперативной памяти и ресурсов процессора.
- Сложность масштабирования. Для запуска, к примеру, 100 браузеров, необходимо сразу несколько десятков рабочих машин.
Стратегия 4: ротация прокси, как метод «ухода» от капчи
Зачастую капча бывает привязана не к вашему поведению, а к IP-адресу. Если с него сделали 1000 запросов, то сайт обязательно пометит адрес как подозрительный и запустит капчу как проверку того, а не робот ли пользователь.
Суть данной стратегии в следующем — берётся пул прокси-серверов. При условии, если с текущего IP начинает сыпаться капча, парсер автоматически берёт следующий адрес из этого пула.
Это осуществляется с помощью покупки публичных и частных прокси, а также их проверки с помощью специализированных менеджеров прокси.
Плюсы у метода ротации прокси следующие:
- Простота реализации. Для данной стратегии достаточно только покупка пула прокси, который сейчас может обойтись программисту в довольно небольшую сумму денег.
- Позволяет долгое время не тратить средства на использование дорогих сервисов распознавания капчи.
Но у данной стратегии есть и минусы. Они следующие:
- Невозможность защиты от умной капчи с анализом поведения — цифровой отпечаток просто не успевать выработаться.
- Качество прокси может оказаться не идеальным и часть адресов либо останется нерабочей, либо не подойдёт для парсинга.
Сравнение стратегий: что выбрать для своего проекта
Выбор стратегии из четырёх стратегий, каждая из которых представлена выше, зависит от ваших целей и бюджета.
- Если сайт простой и практически не защищён, то достаточно стратегии 1 (замедление) и стратегии 4 (ротация прокси). Такой способ будет самым дешёвым, но эффективным для сайтов данного типа.
- Если необходимо собрать много данных, к примеру, с маркетплейса, то идеальным вариантом будет связка эмулятора браузера (стратегия 3) с ротацией прокси (стратегия 4). Тогда капча будет сведена практически к минимуму.
- Если капча появляется неизбежно, то единственным оптимальным, но затратным способом будет стратегия 2 — подключение к данной работе сервисов распознавания. Дело в том, что проще сразу отправить защитную картинку на распознавание к профессионалам своего дела, чем убегать от неё и затем сталкиваться с капчами гораздо чаще, чем обычно.
Пошаговый план: как встроить обход капчи в свой парсер
Если вы хотите гарантировано пройти проверку капчи в любых условиях, то лучше используйте комбинированный подход:
- Проанализируйте тип капчи на целевом сайте (reCAPTCHA, CloudFlare или простая картинка).
- Подготовьте инфраструктуру — стоит приобрести качественные резидентские или мобильные прокси, но не брать дата-центровые.
- Проведите эмуляцию путём написания скрипта для эмулятора с модом на скрытие headless-режима — это поможет вам избежать нежелательного появления капчи на страницах сайтов слишком часто.
- Настройте логику обнаружения на остановку сбора при появлении на странице элемента капчи (iframe или же картинка).
- Выполните интеграцию с сервисом распознавания капчи, чтобы через API код капчи со страницы сайта автоматически отправлялся на сервера, где решался без человеком или ИИ, а обратно отправлялся готовый результат для вставки токена в нужное поле на форме.
- Если капча стала прилетать часто, то настройте ротацию прокси после каждого 5-10 запроса или же при возникновении ошибок.
- Регулярно следите за логами парсера и за балансом в сервисе распознавания.
Заключение
Важно понимать, что универсальной таблетки для ответа на вопрос «как обойти капчу» не существовало и никогда не будет существовать. Ведь то, что сегодня работало на одном из сайтов, завтра может перестать работать в связи с изменением алгоритма защиты. Реально работающий на данный момент подход — это комбинация методов, состоящая из:
- Минимизации рисков через прокси и поведенческие эмуляторы.
- Решении неизбежного в виде сложных капч через профессиональные сервисы.
Встраивая в свой парсер описанные выше стратегии, вы сможете успешно собирать данные даже с тех ресурсов, которые надёжно защищены, сводя затраты на проверку капчи к разумному минимуму.


