Как решать капчи с изображениями при веб-скрапинге в 2025 году: подробная инструкция и рекомендации
Капчи с изображениями являются одной из самых популярных технологий защиты сайтов. Хотя в последнее время внимание смещается в сторону невидимых методов: часто проверка "человечности" происходит в фоновом режиме, и порой пользователи даже не замечают, что на сайте есть защита. Тем не менее, капчи с изображениями всё ещё широко используются, в том числе в тех случаях, когда фоновая проверка не проходит – система подозревает пользователя и просит пройти дополнительную визуальную проверку, как это делает, например, reCAPTCHA.
В процессе скрапинга и других задач в интернете часто приходится сталкиваться с этим препятствием. Но знание того, как обойти капчи, и использование нужных инструментов позволяет без труда продолжать поиск и извлечение данных с сайтов. В этой статье мы разберёмся, что такое капчи с изображениями (Image CAPTCHA), какие они бывают и как с ними справляться при веб-скрапинге.
Капчи с изображениями (Image CAPTCHA) – это способ проверки на бота, где пользователю нужно выполнить задание с картинками. Он может включать выбор конкретных объектов (например, автомобилей или светофоров), ввод символов с искажённого изображения, сборку пазлов или вращение фрагментов изображения до их правильного расположения.
В процессе работы в интернете вы можете встретить самые разные типы капч с изображениями. Давайте разберём самые популярные из них:
Это классическая капча от Google, где пользователю нужно кликнуть “Я не робот”. Если алгоритм доверяет пользователю, капча сразу считается решённой. В ином случае появляется тест с изображениями.


Это тип капчи, в которой пользователю нужно расшифровать текст с изображения и ввести его в поле.

ComplexImage CAPTCHA – это капча с изображениями, в которой пользователю нужно выполнить нестандартное задание. Она сложнее обычных Image CAPTCHA, так как требует анализировать, перемещать или изменять элементы изображения. Давайте рассмотрим примеры таких заданий:
- Поворот изображения (Rotate CAPTCHA)
Требуется повернуть картинку до правильного положения:


- Выбор элементов (Object Selection)
Нужно кликнуть на определённые объекты, выбрать все предметы одного типа (животные, фрукты и т. д.). Или, как в данном случае, найти все кубики с нужным числом:

- Пазлы (Puzzle CAPTCHA)
Нужно перетащить часть изображения в правильное место:

Да, все эти типы проверок сложно пройти автоматическим путём, но, к счастью, имеются специальные сервисы наподобие CapMonster Cloud, которые легко и быстро справляются с этой задачей. Для интеграции вашего парсера с CapMonster Cloud достаточно получить API-ключ в личном кабинете и создать задачу на решение и получение результата от сервера. Также можно обходить такие проверки прямо в браузере – просто скачайте и установите расширение для Chrome или Firefox.
Наш сервис решает reCAPTCHA V2 двумя методами – токеном и кликами:
- Метод токена – вы получаете готовый g-recaptcha-response, который можно сразу вставить в форму и отправить. Этот способ быстрее и удобнее для автоматизации и скриптов.
- Метод кликов – здесь происходит имитация действий пользователя: нажатие на чекбокс «Я не робот», решение дополнительных заданий (если они появляются) и подтверждение капчи. Этот метод полезен, если нужна эмуляция реального поведения.
В зависимости от выбора метода, вам нужно правильно создать задачу. Пример запроса на создание задачи и получения результата для метода токена:
POST https://api.capmonster.cloud/createTask
{
"clientKey":"API_KEY",
"task": {
"type":"RecaptchaV2TaskProxyless",
"websiteURL":"https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=high",
"websiteKey":"6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd"
}
}
Вам понадобится указать тип капчи (с прокси или без), целевую страницу с капчей и websiteKey – специальный ключ-идентификатор капчи. Здесь вы можете изучить подробную инструкцию, как его найти.
POST https://api.capmonster.cloud/getTaskResult
{
"clientKey":"API_KEY",
"taskId": 407533072
}
Для получения результата отправьте запрос на https://api.capmonster.cloud/getTaskResult с вашим API-ключом и taskId задания.
Теперь приведём пример запроса на решение и получение результата для метода кликов:
POST https://api.capmonster.cloud/createTask
{
"clientKey":"API_KEY",
"task": {
"type": "ComplexImageTask",
"class": "recaptcha",
"imageUrls":[ "https://i.postimg.cc/yYjg75Kv/payloadtraffic.jpg" ],
"metadata": {
"Task": "Click on traffic lights",
"Grid": "3x3",
"TaskDefinition": "/m/015qff"
},
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36",
"websiteUrl": "https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=middle"
}
}
Здесь вам нужно будет указать такие важные параметры, как:
imageUrls – URL изображения капчи (может быть сетка 3x3, 4x4 или 1x1 ). Например: [“https://i.postimg.cc/yYjg75Kv/img1.jpg”], выглядит примерно так:

imagesBase64 (если не заполнено imageUrls) – цельное изображение 4x4, 3x3 или 1x1 в формате base64 (в массиве). Пример: [ “/9j/4AAQSkZJRgABAQEAAAAAAAD…”]
Task – инструкция к капче (как в данном примере, выбрать все светофоры).
Grid – размер сетки (3x3). Может быть 4x4 и др.
TaskDefinition (если не заполнено Task) – код объекта, который нужно найти (в примере "/m/015qff" означает “светофоры”). Также могут быть "/m/02y864" – автобус, "/m/0k4j" – мотоцикл и др. Этот параметр можно найти в Инструментах разработчика:

Также дополнительно можно (но необязательно) указать актуальный userAgent и url страницы, где находится капча.
Рассмотрим пример создания запроса и получения результата решения капчи ImageToText:
POST https://api.capmonster.cloud/createTask
{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
POST https://api.capmonster.cloud/getTaskResult
{
"clientKey":"API_KEY",
"taskId": 407533072
}
Для этого типа необходимо отправить закодированную в base64 картинку. Получить эти данные можно разными способами, вот один из примеров получения base64 прямо в консоли браузера:
async function getBase64FromImageUrl(url) {
const response = await fetch(url);
const blob = await response.blob();
const reader = new FileReader();
return new Promise((resolve) => {
reader.onloadend = () => resolve(reader.result.split(",")[1]);
reader.readAsDataURL(blob);
});
}
getBase64FromImageUrl("https://example.com/captcha.jpg").then(console.log);
Для решения таких задач в основном понадобится параметр base64 для всех картинок, которые содержит капча. Рассмотрим пример запроса для Betpunch капчи, в которой пользователю необходимо повернуть изображение в правильное положение. Сначала находим base64 всех картинок и передаём их в следующем порядке:

Пример запроса:
{
"clientKey": "API_KEY",
"task": {
"type": "ComplexImageTask",
"class": "recognition",
"imagesBase64": [
"{image_1_Base64}",
"{image_2_Base64}",
"{image_3_Base64}",
"{image_4_Base64}",
"{image_5_Base64}",
"{image_6_Base64}",
"{image_7_Base64}",
"{image_8_Base64}",
"{image_9_Base64}",
],
"metadata": {
"Task": "betpunch_3x3_rotate"
}
}
}
Указываем в “Task” betpunch_3x3_rotate. Для получения результата используем метод getTaskResult, как в предыдущих примерах. В ответ в случае успешного решения вы получите массив чисел, представляющий решение капчи. Этот JSON-ответ нужно использовать для подтверждения решения. Пример, как это можно реализовать с помощью Selenium:
from selenium import webdriver
# Пример использования ответа из JSON
rotation_values = [4,4,4,4,4,3,1,2,2]
# Дальше используем Selenium для кликов или ввода данных
Мы рассмотрели основные шаги для автоматического решения капч с изображениями с помощью CapMonster Cloud. Но можно ещё больше облегчить этот процесс и сделать его более удобным. Давайте рассмотрим несколько полезных рекомендаций:
CapMonster Cloud предоставляет собственные библиотеки для разработчиков, позволяя значительно сократить код по сравнению с использованием стандартных HTTP-библиотек. Они поддерживают различные языки программирования, включая Python, JavaScript, C# и другие. Это делает интеграцию удобной для разработчиков с разным технологическим стеком. Благодаря готовым методам для создания задач и получения результатов, разработчикам не нужно формировать длинные HTTP-запросы, долго обрабатывать ответы и управлять временем ожидания. Это упрощает процесс работы с сервисом и повышает стабильность кода. Ознакомиться с примерами и шаблонами для интеграции вы можете в документации.
В методе кликов искать и извлекать параметры для запроса на CapMonster Cloud вручную очень неудобно. Тогда в этом случае можно использовать автоматизацию, например, с помощью Selenium. Скрипт поможет автоматически находить текст задания (например, «Click on traffic lights»), определять размер сетки (3x3 или 4x4) и извлекать ссылки на изображения. Эти данные затем передаются в CapMonster Cloud для решения капчи. Такой подход значительно ускоряет процесс решения.
Некоторые сайты могут блокировать решения капч, если все запросы приходят с одного IP-адреса. Использование прокси помогает избежать этого, обеспечивая большую анонимность и повышая шанс успешного прохождения капчи. Используйте надёжные прокси с высокой скоростью; подбирайте географически подходящие IP-адреса, если сайт проверяет местоположение.
Чтобы ускорить обработку капч, можно отправлять несколько задач параллельно. Для этого рекомендуется разбить решения на отдельные потоки (многопоточная обработка), использовать асинхронные запросы (например, asyncio в Python), уменьшить задержки между запросами, но не делать их слишком частыми, чтобы избежать блокировок.
Следуя основным шагам и рекомендациям, которые мы разобрали в этой статье, вы сможете значительно упростить процесс решения капч, снизить вероятность блокировок и ускорить сбор данных. Если у вас остались вопросы или вы хотите узнать больше о конкретных методах, рекомендуем изучить официальную документацию CapMonster Cloud и попробовать интеграцию на практике!
NB: Напоминаем, что продукт используется для автоматизации тестирования на ваших собственных сайтах и на сайтах, к которым у вас есть доступ на законных основаниях.