Парсинг недвижимости по городам Украины: ежедневный сбор и мониторинг по районам

Парсинг недвижимости по городам Украины

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

Парсинг недвижимости по городам Украины

Задача

Клиенту нужен был сбор данных о недвижимости с крупного украинского портала объявлений по нескольким городам. Данные нужны регулярно, с ежедневным обновлением, с отдачей отдельного файла по каждому городу.

На старте речь шла о паре городов. Потом список расширился на все крупные города Украины. Дальше добавились фото, потом – постоянный мониторинг новых объявлений.

Что чаще всего недооценивают в таких проектах

Масштаб. Один город и двадцать городов – это не разница в двадцать раз по времени разработки, но это принципиально другая задача по инфраструктуре: объем данных, время обхода, хранение, параллельность, восстановление после сбоев.

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

Изменения источника. Портал живой, он меняется. Долгая работа с ним означает несколько существенных переделок, и это нужно закладывать с самого начала.

Постепенное расширение. Города добавляются по одному, каждый отдельно кажется мелочью. В сумме получается совсем другой проект.

Как правильно оценивать такие задачи

  • Оценивать инфраструктуру, а не парсинг. Вытащить поля со страницы – самая простая часть. Сложное – хранение, расписание, консистентность и восстановление.
  • Спрашивать о планах роста до старта. Вопрос “а сколько городов может стать через полгода” стоит ноль, а экономит недели.
  • Фиксировать объем в договоренности. Не для того чтобы отказывать в расширении, а чтобы расширение было поводом пересмотреть условия.
  • Доводить до стабильной работы. Система, которая работает каждый день годами, важнее быстрого старта.

Именно так и этот проект доведен до стабильной работы и развивается дальше.

Как устроена система

Сбор по городам

Каждый город обрабатывается отдельно. Это позволяет добавлять новые города без переделки, параллелить работу и не терять все, если на одном городе произошел сбой.

Ежедневное обновление

Раз в сутки данные обновляются полностью. Объявления о недвижимости живут дольше автомобильных, но и здесь ежедневный срез – разумный минимум.

Отдача файлами по каждому городу

Результат – отдельный файл на город, по постоянной ссылке. Клиент забирает то, что ему нужно, и не тянет лишнее.

Фото

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

Продолжение: мониторинг по районам

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

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

Почему разделение именно по районам:

  • риелтор работает со своей территорией, чужие объявления для него шум;
  • в общем чате на сотни сообщений в день свое найти невозможно;
  • руководитель сам распределяет людей по группам;
  • количество сообщений в группе остается таким, что их реально читают.

Это тот же принцип, что и в мониторинге поставщиков: уведомление должно быть релевантным конкретному человеку, иначе его выключат.

Технические особенности недвижимости

Дубли

Один объект выставляют несколько агентств одновременно, иногда с разными фото и ценами. Без дедупликации риелторы получат пять уведомлений об одной квартире.

Обновления вместо новых

Сниженная цена в старом объявлении – это событие не менее важное, чем новое объявление. Систему надо учить отличать действительно новое от отредактированного.

Объем

Все крупные города вместе – это серьезный объем каждый день. Здесь нужно не только хранение, но и аккуратная работа с источником: ровный темп, без пиков.

Кому это подойдет

  • агентствам недвижимости, работающим с первичным потоком объявлений;
  • инвесторам, ищущим объекты по критериям;
  • аналитикам рынка, которым нужна история цен по районам;
  • сервисам, агрегирующим объявления.

Если вам нужны данные с порталов недвижимости, самый важный вопрос на старте – объем и планы роста. Скажите честно, сколько городов или районов может понадобиться через год. Это главная вещь, которая определяет и конструкцию, и цену.

Что спросить у исполнителя до старта

Чтобы масштаб и стоимость не стали сюрпризом, вот список вопросов, которые стоит задать исполнителю до старта.

  • Где это будет работать. Свой сервер, ваш сервер, чей-то компьютер. От ответа зависит, переживет ли проект отпуск исполнителя.
  • Что произойдет, когда сайт изменится. Это не “если”, а “когда”. В ответе должен быть порядок действий и срок реакции.
  • Как вы узнаете о сбое. Если никак – значит узнаете от сотрудников через неделю.
  • Сохраняется ли история. Данные, которые не хранили с начала, потом не восстановить.
  • Что входит в ежемесячный платеж. Только работа сервера или еще и адаптация парсера под изменения источника.

Если на эти пять вопросов есть прямые ответы, проект с большой вероятностью проживет годы. Если ответы размытые, это будет разовая работа независимо от того, как ее назвали в договоренности.

Частые вопросы

Почему отдельная Telegram-группа под каждый район?+
Риелтор работает со своей территорией, чужие объявления для него шум. В общем чате на сотни сообщений в день свое найти невозможно, и уведомления просто выключают.
Как отличить новое объявление от отредактированного?+
Сравнением с предыдущим состоянием. Сниженная цена в старом объявлении - событие не менее важное, чем новое, но это разные события, и путать их нельзя.
Почему один объект приходит несколькими объявлениями?+
Потому что его выставляют несколько агентств одновременно, иногда с разными фото и ценами. Без дедупликации риелтор получит пять уведомлений об одной квартире.
Что больше всего влияет на стоимость такого проекта?+
Объем и планы роста. Один город и двадцать - принципиально разные задачи по инфраструктуре: хранение, расписание, параллельность и восстановление после сбоев.
Похожая задача?

Опишите ее - за 15-20 минут скажу, решается ли она, каким путем и сколько примерно будет стоить. Без обязательств.

Обсудить задачу →