За последние полгода ко мне трижды приходили с одинаковым запросом: старый парсер Авито, который работал два года, внезапно начал получать капчу на третьем запросе и банить прокси пачками. Расскажу, как парсить Авито в 2026 году с учётом того, что площадка поменяла в защите, и какие подходы у меня реально доезжают до продакшена, а какие сыпятся через неделю.
Что изменилось в защите Авито за последний год
Авито заметно ужесточила поведенческий анализ трафика. Раньше можно было гонять запросы к HTML-версии сайта через requests с фиксированным User-Agent и парой прокси - этого хватало на месяцы стабильной работы. Сейчас на голом HTTP-клиенте без эмуляции браузера капча или блокировка по IP прилетает уже на 5-10 запросе, даже если частота обращений низкая.
Из практики: на одном из проектов в марте клиент собирал остатки по 400 объявлениям конкурентов раз в сутки - простой скрипт на requests + BeautifulSoup. В мае та же логика стала давать 403 через раз. Пришлось переезжать на headless-браузер с эмуляцией реального взаимодействия (скролл, задержки, движение курсора), и только после этого сбор снова стал стабильным.
Второй момент - привязка сессии к отпечатку устройства. Если раньше можно было переиспользовать один и тот же браузерный профиль неделями, то теперь долгоживущие сессии с одинаковым отпечатком и меняющимся IP выглядят подозрительно для площадки. Устойчивость скрипта строится не на одном приёме, а на сочетании: разумная частота запросов, ротация IP, разные профили браузера под разные потоки.
Какой стек выбрать для парсинга Авито в 2026 году
На практике использую три подхода в зависимости от объёма и задачи.
HTML-скрапинг через headless-браузер. Playwright или Selenium с реальным рендерингом страницы. Медленнее и дороже по ресурсам, зато переживает изменения вёрстки лучше - верстка Авито меняется у меня на памяти раз в 2-3 месяца, и правки в селекторах занимают 20-30 минут вместо переписывания парсера с нуля.
Мобильное API. У приложения Авито есть внутренние эндпоинты, которые отдают JSON без необходимости разбирать HTML. Работает быстрее HTML-парсинга в 5-7 раз и меньше нагружает инфраструктуру, но требует повторения заголовков и параметров запроса мобильного клиента, а сама схема запросов время от времени меняется без предупреждения - я закладываю на такой парсер регламентное обслуживание раз в квартал.
Готовые сервисы парсинга (SaaS). Zennoposter-скрипты, облачные парсеры с оплатой за объявление. Быстрый старт без разработки, но для 5000+ объявлений в день выходит дороже собственного решения уже через 2-3 месяца, и вы не контролируете формат данных.
| Способ | Скорость запуска | Стабильность на дистанции | Когда использую |
|---|---|---|---|
| HTML + headless-браузер | 3-5 дней разработки | Высокая, легко чинится под новую вёрстку | Мониторинг цен, разовые выгрузки |
| Мобильное API | 1-2 дня | Средняя, ломается при смене схемы запросов | Большие объёмы, real-time сбор |
| Готовые SaaS-парсеры | Часы | Зависит от поставщика | Проверка гипотезы, разовая задача |
На рынке цена разработки парсера под ключ в студиях обычно стартует от 40 000-70 000 ₽ за похожий объём задач - я беру дешевле именно потому, что закрываю такие проекты в одиночку без прослойки менеджеров.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Ротация IP и снижение числа блокировок
Без ротации IP любой парсер Авито живёт максимум пару дней при заметном объёме запросов. Использую пул резидентных прокси с привязкой конкретного IP к конкретной сессии браузера - так поведение ближе к реальному пользователю, который весь визит сидит с одного адреса, а не прыгает между IP на каждом запросе.
Частота запросов у меня обычно не превышает одного обращения к карточке объявления в 3-5 секунд на один IP, с рандомизацией интервала. Дата-центровые прокси в 2026 году банятся у Авито заметно быстрее резидентных - на одном из проектов дата-центровый пул сгорал за 40-60 минут работы, тогда как резидентные IP с той же нагрузкой держались неделями.
Отдельно рекомендую рандомизировать отпечаток браузера между профилями: разрешение экрана, часовой пояс, набор шрифтов, версия браузера. Не ради того, чтобы притвориться кем-то другим, а чтобы разные потоки парсера не выглядели как один и тот же клиент, который открыл сто вкладок одновременно - именно такая картина чаще всего и триггерит блокировку.
Задержки и лимиты запросов
Соблюдение rate-limit - не формальность для галочки, а рабочий инструмент. На проектах, где я закладывал случайную задержку 2-6 секунд между запросами и ограничивал параллельность потоков (обычно 3-5 одновременных сессий на IP-пул), доля заблокированных запросов падала с 15-20% до 1-2%.
Куда складывать и как обрабатывать собранные данные
Сырые данные с Авито - это описание, цена, дата публикации, координаты, фото и статус активности объявления. Для клиентских проектов с персональными данными (контакты продавцов, номера телефонов) храню базу на сервере в РФ - облачные таблицы вроде Google Sheets для таких данных не использую, это прямое требование локализации персональных данных по 152-ФЗ.
Для чисто товарных данных без персоналий (цены, характеристики, конкурентный анализ) обычно поднимаю PostgreSQL с ежедневным дифом - сравниваю новый снимок с предыдущим и пишу в отдельную таблицу только изменения цены и появление/исчезновение объявлений. Это резко сокращает объём базы: вместо полного снимка каждый день храню только дельты.
Если под задачу подходит готовый шаблон, а не разработка с нуля, у меня в библиотеке готовых скриптов есть заготовки для сбора и нормализации данных с маркетплейсов - быстрее адаптировать под свою схему, чем писать парсер с чистого листа.
Автоматизация: уведомления и интеграции
Сырой парсинг редко нужен сам по себе - обычно клиенту важен результат в удобном виде. Частый сценарий: парсер находит новые объявления по заданным фильтрам (район, цена, категория) и присылает уведомление в Telegram. Собираю такие уведомления на aiogram - бот получает от парсера пачку новых объявлений раз в 15-30 минут и рассылает подписчикам с фото и ссылкой.
Второй сценарий - связка с n8n. Парсер пишет результат в базу, n8n по расписанию забирает новые записи, прогоняет через фильтр (например, отсекает объявления без фото или с ценой ниже рынка процентов на 40, что обычно означает мусор или мошенника) и раскладывает по каналам: часть в Telegram, часть в Google-таблицу для внутреннего анализа (без персональных данных), часть в CRM.
Для интернет-магазинов, которые парсят Авито ради мониторинга цен конкурентов, обычно добавляю недельный отчёт с динамикой - таблица или простой дашборд, где видно, кто из конкурентов поднял или снизил цену за последние 7 дней.
Данные и процессы на автопилоте
Парсинг / Автоматизация
от 20 000 ₽
Подробнее →Частые вопросы
Законно ли парсить объявления с Авито?
Сбор открытых данных без авторизации и без обхода платного доступа сам по себе не нарушает закон - это работа с публично доступной информацией. Вопросы возникают, если данные используются для спама, обзвона без согласия или при нарушении условий использования площадки в коммерческих целях. Для клиентских проектов я всегда обсуждаю, что именно собираем и как это будет использоваться дальше.
Сколько стоит разработать парсер Авито под конкретную задачу?
У меня разработка парсинга и автоматизации на Python стоит от 20 000 ₽ - конечная сумма зависит от объёма данных, нужна ли ротация IP, куда именно складывать результат и нужна ли интеграция с ботом или CRM. Простой сбор 100-200 объявлений в день по одному фильтру обычно ближе к нижней границе, комплексный мониторинг с уведомлениями и дашбордом - дороже.
Можно ли парсить Авито без прокси?
На небольшом объёме (десяток запросов в день с одного IP) можно обойтись без прокси какое-то время, но при регулярном сборе даже 200-300 объявлений в сутки без ротации IP блокировка - вопрос дней, а не недель. Резидентные прокси с привязкой к сессии - минимальный набор для стабильной работы.
Что делать, если парсер уже забанили по IP?
Меняю пул прокси и пересматриваю частоту запросов, а не просто повторяю ту же логику с новым IP - если банили именно по паттерну поведения (частота, отсутствие пауз, идентичный отпечаток на разных IP), новый прокси даст ту же блокировку через похожее время. Обычно разбираю логи запросов перед последним баном, чтобы понять, какой именно параметр вызвал подозрение.