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

Задача
Клиенту нужен был сбор данных о недвижимости с крупного украинского портала объявлений по нескольким городам. Данные нужны регулярно, с ежедневным обновлением, с отдачей отдельного файла по каждому городу.
На старте речь шла о паре городов. Потом список расширился на все крупные города Украины. Дальше добавились фото, потом – постоянный мониторинг новых объявлений.
Что чаще всего недооценивают в таких проектах
Масштаб. Один город и двадцать городов – это не разница в двадцать раз по времени разработки, но это принципиально другая задача по инфраструктуре: объем данных, время обхода, хранение, параллельность, восстановление после сбоев.
Сложность по первой странице. Выдача выглядит простой, данные достаются. Но сложность не в выдаче, а в объеме, в разнообразии типов объявлений и в том, что данные нужно держать консистентными изо дня в день.
Изменения источника. Портал живой, он меняется. Долгая работа с ним означает несколько существенных переделок, и это нужно закладывать с самого начала.
Постепенное расширение. Города добавляются по одному, каждый отдельно кажется мелочью. В сумме получается совсем другой проект.
Как правильно оценивать такие задачи
- Оценивать инфраструктуру, а не парсинг. Вытащить поля со страницы – самая простая часть. Сложное – хранение, расписание, консистентность и восстановление.
- Спрашивать о планах роста до старта. Вопрос “а сколько городов может стать через полгода” стоит ноль, а экономит недели.
- Фиксировать объем в договоренности. Не для того чтобы отказывать в расширении, а чтобы расширение было поводом пересмотреть условия.
- Доводить до стабильной работы. Система, которая работает каждый день годами, важнее быстрого старта.
Именно так и этот проект доведен до стабильной работы и развивается дальше.
Как устроена система
Сбор по городам
Каждый город обрабатывается отдельно. Это позволяет добавлять новые города без переделки, параллелить работу и не терять все, если на одном городе произошел сбой.
Ежедневное обновление
Раз в сутки данные обновляются полностью. Объявления о недвижимости живут дольше автомобильных, но и здесь ежедневный срез – разумный минимум.
Отдача файлами по каждому городу
Результат – отдельный файл на город, по постоянной ссылке. Клиент забирает то, что ему нужно, и не тянет лишнее.
Фото
Фото добавились позже и заметно усложнили задачу: это уже не текст, а большой объем файлов, которые надо скачать, проверить, сохранить и отдать. Обработка изображений почти всегда недооценивается при оценке проекта.
Продолжение: мониторинг по районам
Со временем к сбору добавился мониторинг новых объявлений с разделением по районам. Под каждый район создана отдельная группа в Telegram, и туда добавлены риелторы, которые работают именно с этим районом.
Логика рынка здесь простая и жесткая: кто первым позвонил по новому объявлению, тот и работает с объектом. Разница в пятнадцать минут решает, чьим будет клиент.
Почему разделение именно по районам:
- риелтор работает со своей территорией, чужие объявления для него шум;
- в общем чате на сотни сообщений в день свое найти невозможно;
- руководитель сам распределяет людей по группам;
- количество сообщений в группе остается таким, что их реально читают.
Это тот же принцип, что и в мониторинге поставщиков: уведомление должно быть релевантным конкретному человеку, иначе его выключат.
Технические особенности недвижимости
Дубли
Один объект выставляют несколько агентств одновременно, иногда с разными фото и ценами. Без дедупликации риелторы получат пять уведомлений об одной квартире.
Обновления вместо новых
Сниженная цена в старом объявлении – это событие не менее важное, чем новое объявление. Систему надо учить отличать действительно новое от отредактированного.
Объем
Все крупные города вместе – это серьезный объем каждый день. Здесь нужно не только хранение, но и аккуратная работа с источником: ровный темп, без пиков.
Кому это подойдет
- агентствам недвижимости, работающим с первичным потоком объявлений;
- инвесторам, ищущим объекты по критериям;
- аналитикам рынка, которым нужна история цен по районам;
- сервисам, агрегирующим объявления.
Если вам нужны данные с порталов недвижимости, самый важный вопрос на старте – объем и планы роста. Скажите честно, сколько городов или районов может понадобиться через год. Это главная вещь, которая определяет и конструкцию, и цену.
Что спросить у исполнителя до старта
Чтобы масштаб и стоимость не стали сюрпризом, вот список вопросов, которые стоит задать исполнителю до старта.
- Где это будет работать. Свой сервер, ваш сервер, чей-то компьютер. От ответа зависит, переживет ли проект отпуск исполнителя.
- Что произойдет, когда сайт изменится. Это не “если”, а “когда”. В ответе должен быть порядок действий и срок реакции.
- Как вы узнаете о сбое. Если никак – значит узнаете от сотрудников через неделю.
- Сохраняется ли история. Данные, которые не хранили с начала, потом не восстановить.
- Что входит в ежемесячный платеж. Только работа сервера или еще и адаптация парсера под изменения источника.
Если на эти пять вопросов есть прямые ответы, проект с большой вероятностью проживет годы. Если ответы размытые, это будет разовая работа независимо от того, как ее назвали в договоренности.
