Кейс: Как мы разработали Telegram-бота SweetRent для поиска жилья в Армении
В последние годы Армения стала центром притяжения для многих специалистов и туристов, что вызвало резкий скачок спроса на аренду жилья. Рынок оказался перегружен, а поиск подходящей квартиры или дома превратился в настоящий квест: десятки сайтов, повторяющиеся объявления, неактуальная информация и уйма потраченного времени.
Столкнувшись с этой проблемой, мы решили создать инструмент, который автоматизирует и упростит этот процесс. Так родилась идея SweetRent — умного Telegram-бота для поиска жилья в Армении. В этой статье мы расскажем, как превратили идею в работающий продукт.
Задача: Упростить хаос на рынке недвижимости
Основная цель была проста — создать единую точку входа для поиска арендного жилья. Пользователь не должен был больше часами сидеть на разных сайтах. Он просто пишет боту свои пожелания, а бот делает всю грязную работу за него.
Мы выделили ключевые требования к будущему боту: 1. Простота и удобство: Интерфейс должен быть интуитивно понятным даже для тех, кто никогда не пользовался ботами. 2. Скорость: Быстрый отклик на запросы. 3. Полнота данных: Максимально возможный охват предложений со всего рынка. 4. Актуальность: Минимум "мусорных" и устаревших объявлений.
Именно пункт о полноте данных стал нашим главным техническим вызовом. Как собрать все объявления в одном месте?
Решение: Двухуровневая система поиска
Мы поняли, что полагаться только на один источник данных — неэффективно. Поэтому разработали гибридную модель, состоящую из двух ключевых компонентов:
- Собственная база данных (БД).
- Парсер сторонних сайтов.
Как это работает?
Когда пользователь отправляет запрос в @SweetRentBot
(например, "2-комнатная квартира в Ереване, до $700"), бот сначала обращается к нашей собственной, предварительно наполненной и очищенной базе данных. Это обеспечивает практически мгновенный ответ, если в базе уже есть подходящие варианты.
Но что, если ничего не найдено?
Вот здесь и начинается магия. Если внутренняя база данных возвращает пустой результат, бот запускает вторую ступень — модуль парсинга. В реальном времени он обращается к нескольким популярным сайтам недвижимости в Армении (например, list.am, bars.am и другим), собирает оттуда свежие объявления, фильтрует их по запросу пользователя и отправляет ему результат.
Пример объявления из бота
Техническая реализация
- Язык и фреймворки: В качестве основы мы выбрали Python — идеальный инструмент для таких задач благодаря своей гибкости и огромному количеству библиотек. Для самого бота мы использовали библиотеку
telebot
, а для парсинга — связкуBeautifulSoup
иScrapy
. - Парсер: Самой сложной частью была разработка "умного" парсера. Каждый сайт имеет свою структуру, защиту от ботов и особенности верстки. Нам пришлось написать уникальные обработчики для каждого источника, которые умеют не только "вытаскивать" данные (цену, количество комнат, район, фото), но и очищать их от мусора и приводить к единому формату.
- База данных: Мы использовали MySQL для хранения уже собранных объявлений, пользовательских запросов и настроек. Это позволило нам кэшировать популярные запросы и значительно ускорить работу бота.
Результаты
Запуск SweetRent показал отличные результаты: - Экономия времени: Пользователи тратят на поиск в среднем на 70% меньше времени, чем при ручном поиске. - Полнота охвата: Благодаря парсингу бот предоставляет одну из самых полных баз предложений на рынке. - Положительные отзывы: Мы получили множество благодарностей от людей, которые смогли быстро найти себе жилье в непростых условиях.
Нужен похожий чат-бот для вашего бизнеса? Свяжитесь с нами, и мы найдем лучшее решение для вашей задачи!