Эта статья была полезной?
Как решить GeeTest v4 на сайте Avito.ru
Технический специалист
Введение
Это руководство для разработчиков, которые автоматизируют работу с Avito.ru и сталкиваются с капчей GeeTest v4. Мы покажем, как получить необходимые параметры со страницы, отправить задачу в RuCaptcha и корректно передать решение на сервер Avito.
Что потребуется:
- API-ключ из личного кабинета RuCaptcha
- Понимание работы с HTTP и JSON
- Прокси, соответствующий региону
- Инструменты для отладки: браузер с DevTools, curl или Postman
Общие сведения
На Avito.ru используется защита GeeTest v4 в формате слайдера. Капча появляется при подозрительной активности: частые запросы, отсутствие куки, нестандартные заголовки.
Для успешного прохождения необходимо:
- Получить
captcha_idсо страницы Avito (фиксированное значение) - Отправить задачу в RuCaptcha с указанием
version: 4 - Получить решение с четырьмя полями:
lot_number,pass_token,gen_time,captcha_output - Передать эти данные в эндпоинт верификации Avito с корректными заголовками и куки
Подготовка окружения
Перед началом работы:
- Получите API-ключ в личном кабинете RuCaptcha
- Убедитесь, что целевая страница на Avito доступна и отображает капчу при необходимости
- Настройте хранение ключа в переменной окружения, а не в коде
Анализ страницы Avito
Поиск captcha_id
- Откройте DevTools (F12) на странице Avito, где появляется капча
- Перейдите во вкладку Elements
- Найдите элемент с атрибутом
data-geetest:
html
<div class="geetest_widget" data-geetest="2d9c743cf7d63dbc9db578a608196bcd"></div>
Значение 2d9c743cf7d63dbc9db578a608196bcd — это captcha_id для Avito. Оно постоянно для всего домена.
Ключевые сетевые запросы
Во вкладке Network отфильтруйте запросы по firewallCaptcha. Вам понадобятся:
- Эндпоинт верификации:
https://www.avito.ru/web/1/firewallCaptcha/verify - Метод:
POST - Content-Type:
application/json
Также обратите внимание на заголовки запроса, особенно:
User-AgentRefererOriginCookie
Эти данные необходимо воспроизвести при отправке решения.
Реализация
Шаг 1. Создание задачи в RuCaptcha
Отправьте POST-запрос на https://api.rucaptcha.com/createTask:
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GeeTestTaskProxyless",
"websiteURL": "https://www.avito.ru/moskva/kvartiry/prodam",
"version": 4,
"initParameters": {
"captcha_id": "2d9c743cf7d63dbc9db578a608196bcd"
}
}
}
Шаг 2. Использование прокси (опционально)
Если вы управляете прокси самостоятельно, замените тип задачи на GeeTestTask и добавьте параметры:
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GeeTestTask",
"websiteURL": "https://www.avito.ru/moskva/kvartiry/prodam",
"version": 4,
"initParameters": {
"captcha_id": "2d9c743cf7d63dbc9db578a608196bcd"
},
"proxyType": "http",
"proxyAddress": "1.2.3.4",
"proxyPort": 8080,
"proxyLogin": "user",
"proxyPassword": "pass"
}
}
Шаг 3. Получение решения
Опрашивайте https://api.rucaptcha.com/getTaskResult с параметром taskId, пока статус не станет ready.
Пример ответа:
json
{
"errorId": 0,
"status": "ready",
"solution": {
"captcha_id": "2d9c743cf7d63dbc9db578a608196bcd",
"lot_number": "e6c3bed2854f41f880662c48afff5dcb",
"pass_token": "fad5eb52fc83bf7617402fcccfb211a21e0aa1d1044",
"gen_time": "1693924478",
"captcha_output": "fN36ufW6cQN4SQ-JRDQC70nSq9UcQBg=="
}
}
Шаг 4. Отправка решения на Avito
Сформируйте POST-запрос на https://www.avito.ru/web/1/firewallCaptcha/verify:
json
{
"captcha_id": "2d9c743cf7d63dbc9db578a608196bcd",
"lot_number": "e6c3bed2854f41f880662c48afff5dcb",
"pass_token": "fad5eb52fc83bf7617402fcccfb211a21e0aa1d1044",
"gen_time": "1693924478",
"captcha_output": "fN36ufW6cQN4SQ-JRDQC70nSq9UcQBg=="
}
Обязательные условия:
- Заголовки
User-Agent,Referer,Originдолжны совпадать с браузерной сессией - Куки должны быть актуальными и получены из той же сессии
- Метод запроса —
POST,Content-Type: application/json
Пример заголовков:
http
POST /web/1/firewallCaptcha/verify HTTP/1.1
Host: www.avito.ru
Content-Type: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
Referer: https://www.avito.ru/moskva/kvartiry/prodam
Origin: https://www.avito.ru
Cookie: srv_id=...; u=...; v=...
Пояснения к интеграции
Почему именно эти параметры
Avito использует фиксированный captcha_id для всего домена. Это упрощает интеграцию: не нужно извлекать значение динамически при каждом запуске.
Четыре поля решения (lot_number, pass_token, gen_time, captcha_output) формируются сервером GeeTest после успешного прохождения интерактивной задачи. Без любого из них верификация на стороне Avito завершится ошибкой.
Обработка ошибок
Если ответ от /firewallCaptcha/verify содержит "verified": false, проверьте:
- Все ли поля решения переданы
- Совпадают ли заголовки и куки с браузерной сессией
- Не истёк ли срок действия токенов (они одноразовые)
При повторяющихся ошибках увеличьте паузу между получением решения и его отправкой — иногда требуется время на синхронизацию сессий.
Типичные ошибки
| Ошибка | Причина | Решение |
|---|---|---|
verified: false от Avito |
Отсутствует одно из четырёх полей решения | Проверьте наличие lot_number, pass_token, gen_time, captcha_output |
| Капча не появляется | Нет триггеров для показа защиты | Эмулируйте поведение пользователя: задержки, реальные заголовки, куки |
| Таймаут при опросе результата | Долгое решение или очередь | Увеличьте интервал опроса до 10 секунд, настройте таймаут клиента |
| Блокировка по IP | Частые запросы с одного адреса | Используйте резидентные прокси с российским IP, добавляйте паузы |
| Несоответствие заголовков | Заголовки запроса отличаются от браузерных | Скопируйте User-Agent, Referer, Origin из DevTools |
Дополнительные ресурсы
- Песочница RuCaptcha — тестирование API без кода
- Документация GeeTest API — спецификация методов
- Примеры запросов на GitHub — готовые JSON-шаблоны
- Поддержка RuCaptcha — помощь при интеграции
Контрольный список
- Получен и проверен API-ключ из личного кабинета RuCaptcha
- Подтверждён
captcha_idдля Avito:2d9c743cf7d63dbc9db578a608196bcd - В задаче указан
version: 4иinitParametersсcaptcha_id -
websiteURLсоответствует реальной странице с капчей на Avito - При необходимости настроен прокси с российским IP
- Реализован опрос
getTaskResultдо статусаready - Решение содержит все поля:
lot_number,pass_token,gen_time,captcha_output - Запрос верификации на Avito включает актуальные куки и заголовки из браузерной сессии
- Протестировано в песочнице перед запуском в продакшен
Заключение
Для прохождения GeeTest v4 на Avito.ru достаточно отправить задачу в RuCaptcha с фиксированным captcha_id и version: 4, а затем передать полученное решение в эндпоинт верификации с корректными заголовками и куки.
Ключ к стабильной работе — точное воспроизведение браузерной сессии и использование прокси, соответствующего целевому региону. Перед запуском в продакшен обязательно протестируйте интеграцию в песочнице и сверьтесь с контрольным списком.
Соблюдайте условия использования Avito и не перегружайте сервис запросами — это поможет избежать блокировок и обеспечит долгосрочную стабильность вашей интеграции.