Иван Афанасьев afanasev.info Паспорт верифицирован
Автоматизация бизнес процессов, чат-боты, парсинг, 2D игры
Рейтинг
25 467
№ 32 в каталоге
Отзывы
Профессионализм
10/10
Коммуникация
10 /10
Город
Уфа
Опыт работы
9 лет
На сайте с
2017 года
Юридический статус
Самозанятый
Freelance.Boutique
Премиум-сервис для лучших исполнителей
Безопасная сделка
Деньги списываются после приёмки

Telegram-bot для поиска объявлений Avito, которых нет на Циан

Используемые навыки Node.js PostgresSQL Scripts & Utilities

Описание

Клиент заметил, что многие продавцы размещают свои объявления только на одной из двух крупнейших площадок — Avito. При этом на Циан, который считается более профессиональной платформой для недвижимости, эти же объекты могут не попадать. Это создает «слепую зону» и позволяет упускать потенциально выгодные лоты с менее высокой конкуренцией.

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

Решение

Модуль Avito (Puppeteer + Динамические Прокси):

Для эмуляции реального поведения пользователя и обхода анти-бот систем Avito использовался Puppeteer. Он позволяет управлять полноценным браузером Chrome, загружая JavaScript и рендеря страницу так же, как это делает обычный пользователь.

Для исключения блокировок по IP-адресу была интегрирована система динамических прокси. Перед каждым циклом парсинга система запрашивает свежий IP-адрес из пула прокси, что делает трафик неотличимым от трафика разных реальных пользователей.

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

Модуль Циан (Fetch + Динамические Прокси):

Для Циан оказалось достаточно использования функции fetch для выполнения HTTP-запросов, так как необходимая информация доступна без полного рендеринга JS на стороне клиента.

Однако, для защиты от блокировок, также была применена система динамических прокси. Каждый запрос к Циан выполнялся с нового IP-адреса.

Система формировала поисковый URL на основе параметров объявления с Avito и анализировала ответ на наличие совпадений.

Разработка Ядра Логики Сравнения:

Каждое новое объявление, полученное с Avito, сохранялось в БД.

Для него запускался процесс "верификации" на Циан. Система искала объявления с похожей ценой (в диапазоне ±10%), площадью и расположением в том же районе/улице.

Результат

Успешный парсинг сложных платформ: Комбинация Puppeteer для Avito и fetch для Циан показала наилучшее соотношение эффективности и скорости.

Стабильность работы: Использование динамических прокси свело к минимуму количество блокировок, обеспечив непрерывный сбор данных.

Производительность: Асинхронная природа Node.js позволила параллельно обрабатывать десятки объявлений, значительно ускорив общий цикл "поиск-верификация-уведомление".

Надежное хранение: PostgreSQL надежно хранит историю данных, что позволяет проводить анализ и избегать повторных уведомлений об одних и тех же объявлениях.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Парсинг любых сайтов
Парсинг любых сайтов
401
Веб-разработка и IT AutekaBot
AutekaBot
413
Веб-разработка и IT Бот Парсер Авито
Бот Парсер Авито
623
Веб-разработка и IT Расширение VPN(Proxy) для браузеров
Расширение VPN(Proxy) для браузеров
267