Бот аналитики недвижимости: Авито + ПВЗ Wildberries

Обновлено:
ML Нейросети2 месяца

Клиенту требовался анализ локаций рядом с пунктами выдачи заказов Wildberries: как соотносятся цены на недвижимость с плотностью инфраструктуры ПВЗ. Вместе с партнёром Orbyx мы разработали Telegram-бот, который парсит объявления о недвижимости с Авито и накладывает их на карту пунктов выдачи. Цены, площадь и расположение объектов видны в связке с покрытием ПВЗ — это помогает оптимизировать логистику и выбирать районы для новых точек продаж на основе данных, а не интуиции. Команда полного цикла собрала решение за 2 месяца.

Бот аналитики недвижимости: Авито + ПВЗ Wildberries

Задача

Сеть пунктов выдачи Wildberries растёт быстрее, чем инструменты для её анализа. Для компаний, которые оптимизируют логистику или подбирают помещения под новые точки продаж, выбор локации — решение на годы вперёд. Данные для этого решения существуют: объявления о недвижимости публикуются на Авито, адреса ПВЗ известны. Не хватает только связи между двумя источниками: в одну картину их никто не собирал.

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

Клиент пришёл к нам вместе с партнёром Orbyx с конкретным запросом: автоматизировать эту связку. Нужен был инструмент, который сам собирает объявления, привязывает их к карте пунктов выдачи и выдаёт результат в удобном виде — без установки программ и обучения сотрудников.

Данные живут раздельно

Авито знает всё о рынке недвижимости, карта Wildberries — о расположении ПВЗ. Готового инструмента под эту связку у клиента не было — каждый анализ начинался с нуля.

Ручная сверка не масштабируется

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

Решения без геоконтекста

Цена и площадь помещения ничего не говорят о его окружении. Без данных о плотности инфраструктуры Wildberries вокруг объекта решение о локации принималось на интуиции — с ценой ошибки в месяцы аренды.

Что делает система

Парсер объявлений Авито

Модуль сбора данных на Python и BeautifulSoup обходит выдачу Авито по заданной географии и извлекает из объявлений структурированные поля: цену, площадь, адрес, ссылку на объект. Сбор работает в щадящем режиме с паузами между запросами, а слой извлечения изолирован от остального конвейера — изменения вёрстки Авито правятся точечно.

База пунктов выдачи Wildberries

Второй источник данных — справочник ПВЗ Wildberries с адресами и координатами точек. Он образует опорный слой карты, относительно которого анализируются объявления: расстояние до ближайших пунктов, количество точек в радиусе, плотность покрытия района. Справочник хранится локально и обновляется отдельно от парсинга объявлений — независимым процессом.

Геокодирование адресов

Адрес из объявления — это строка, часто неполная или с опечатками. Модуль на базе Google Maps API нормализует адреса и переводит их в координаты, после чего каждый объект получает точку на карте. Объявления, которые не удалось привязать однозначно, помечаются отдельно и не попадают в расчёты — чтобы не искажать аналитику.

Наложение слоёв на карту

Ядро продукта: объявления о недвижимости и пункты выдачи Wildberries отображаются на общей карте. Сразу видно, какие объекты стоят в окружении плотной инфраструктуры маркетплейса, а какие — в «пустых» зонах. То, что раньше требовало ручной сверки двух источников, теперь считывается с карты за секунды.

Аналитика локаций

Слой анализа данных превращает карту в инструмент решений: по каждому объекту считаются расстояние до ближайших ПВЗ и их число в радиусе, по районам — средние цены и площади. Так выделяются выгодные зоны: например, районы с растущей плотностью инфраструктуры Wildberries и всё ещё умеренными ценами на помещения.

Telegram-бот как интерфейс

Пользователь работает с системой через Telegram: задаёт параметры выборки — район, диапазон цены и площади — и получает подборку объектов с привязкой к карте ПВЗ. Никакой установки и обучения: интерфейс живёт в мессенджере, которым команда клиента и так пользуется каждый день, и одинаково работает с телефона и компьютера.

Регулярное обновление данных

Рынок недвижимости живёт: объявления появляются и снимаются ежедневно. Конвейер сбора запускается по расписанию, обновляет базу объявлений и помечает неактуальные объекты. Клиент всегда работает со свежим срезом рынка, а не со снимком месячной давности — без ручного перезапуска и контроля со стороны пользователей.

Технологический стек

Python

Единый язык для всего конвейера: парсинг, геопривязка, аналитика и бот написаны на одном стеке. Это упрощает поддержку и развитие — не нужно синхронизировать несколько технологий. Экосистема Python закрывает каждый этап проекта зрелыми библиотеками: от HTTP-запросов и разбора HTML до обработки данных и работы с API мессенджера и карт.

Web Scraping + BeautifulSoup

BeautifulSoup — проверенный инструмент разбора HTML: он терпим к неидеальной вёрстке и позволяет писать селекторы, устойчивые к косметическим изменениям страниц. Для задачи с одним основным источником данных это оптимальный выбор — легче и предсказуемее тяжёлых скрейпинг-фреймворков, а логика извлечения читается и правится за минуты, а не часы.

Telegram Bot API

Интерфейс без разработки фронтенда: не нужны сайт, хостинг веб-приложения и отдельная авторизация. Telegram Bot API покрывает все сценарии проекта — приём параметров выборки, фильтры, выдача подборок и карт — и работает на любом устройстве. Для инструмента внутренней аналитики это самый короткий путь от данных к пользователю.

Google Maps API

Геокодирование — задача, которую не стоит решать самостоятельно: качество распознавания адресов у Google Maps API выше любого самописного решения, включая неполные адреса и опечатки. API также даёт расчёт расстояний и картографическую основу — всю географию проекта закрывает один надёжный сервис с предсказуемым поведением на наших объёмах запросов.

Data Analysis

Слой обработки данных объединяет источники: очищает и нормализует собранные объявления, связывает их с координатами ПВЗ, считает расстояния, плотность точек и агрегаты по районам. Именно здесь сырые данные превращаются в ответы на вопросы бизнеса — какие локации выгодны и почему, — и этот слой не зависит от интерфейса выдачи.

PythonTelegram Bot APIWeb ScrapingBeautifulSoupGoogle Maps APIData Analysis

Как шла разработка

Постановка гипотезы

Готово

Начали с вопроса, какие решения должен поддерживать инструмент: оптимизация логистики и подбор районов под новые точки продаж. Из этого вывели требования к данным — цена, площадь, расположение, близость к ПВЗ — и договорились о минимальном полезном результате первой версии.

Разведка источников

Готово

Исследовали структуру выдачи и карточек объявлений Авито, собрали справочник пунктов выдачи Wildberries, проверили качество адресов на геокодировании. На этом этапе стало ясно, какие поля извлекаются надёжно, а где потребуется нормализация данных перед привязкой к карте.

Конвейер сбора

Готово

Построили парсер на Python и BeautifulSoup: обход выдачи по заданной географии, извлечение полей, дедупликация и сохранение в базу. Отдельно отладили щадящий режим запросов, чтобы сбор шёл стабильно и не создавал заметной нагрузки на источник данных.

Геослой и карта

Готово

Подключили Google Maps API: нормализация и геокодирование адресов, привязка объявлений к координатам, наложение на слой ПВЗ Wildberries. Добавили расчёты расстояний и плотности точек в радиусе — карта из картинки превратилась в источник численных ответов.

Бот и выдача

Готово

Собрали Telegram-интерфейс: сценарии запроса выборки, фильтры по цене, площади и району, формат выдачи с привязкой объектов к карте пунктов выдачи. Прогнали сценарии с будущими пользователями и упростили всё, что вызывало вопросы при первом контакте.

Калибровка и передача

Готово

Проверили инструмент на реальных районах: сверили выборки бота с ручным анализом, настроили частоту обновления данных, поправили пограничные случаи геокодирования. Передали проект клиенту вместе с Orbyx — через 2 месяца после старта работ.

Результаты

Через 2 месяца после старта у клиента появился инструмент, которого у него раньше не было: объявления о недвижимости с Авито и карта пунктов выдачи Wildberries объединены в одну картину. Вручную такой анализ локации занимает дни — теперь он сводится к запросу в Telegram-боте: выборка объектов с ценами, площадью и геоконтекстом приходит за секунды. Решения о логистике и новых точках продаж опираются на данные, а не на интуицию.

Проект стал примером того, как нестандартный подход к данным помогает принимать стратегически важные решения: два открытых источника, которые никто не связывал, вместе дали новое качество аналитики. Архитектура конвейера — сбор, геопривязка, анализ, интерфейс — разделена на независимые слои, поэтому решение переносится на другие источники и города без переписывания ядра. А работа в тандеме с Orbyx избавила проект от затянутых согласований: решения принимались быстро, и идея превратилась в рабочий инструмент без пауз.

2 месяца

от идеи до работающего инструмента

2 источника

Авито и карта ПВЗ Wildberries в одной системе

1 запрос

в боте вместо дней ручной сверки

6 технологий

в конвейере от парсинга до карты

Партнёрский проект

Этот кейс мы реализовали в партнёрстве с Orbyx, поэтому публикуем его открыто. В таких проектах партнёр держит контакт с заказчиком и контекст его бизнеса, а наша команда полного цикла отвечает за инженерную часть — от парсинга и геоаналитики до Telegram-бота.

Такая модель работает на скорость: два месяца от идеи до работающего инструмента — во многом результат того, что вопросы бизнеса и вопросы технологий решались параллельно, а не по очереди.

Вопросы о проекте

Обсудим похожий проект?

Расскажите о задачах вашего бизнеса — предложим архитектуру и оценим сроки

Разработка чат-ботов