Лидеры года — новая категория на Workspace Digital Awards! Номинируйте вашу команду, продукты и проекты.
Дмитрий Гапонов
Реестр коммерческой недвижимости на 1000 объектов - контакты только с официальных сайтов
Дмитрий Гапонов
#Разработка программного обеспечения

Реестр коммерческой недвижимости на 1000 объектов - контакты только с официальных сайтов

Дмитрий Гапонов Россия, Новосибирск
Поделиться: 0 0 0
Сфера

Недвижимость

Сдано

Сентябрь 2026

Задача

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

Условие жёсткое. Только публичные данные юрлиц с официальных сайтов, без личных данных сотрудников и частных номеров, без закрытых баз и справочников, которые запрещают выгрузку, без дублей. Сначала сотня строк на проверку формата, потом остальное.

Вторым этапом он попросил ещё пятьсот объектов, добрать их по городам-миллионникам и вытащить профильные контакты - главный инженер, управляющий, отдел закупок - а теми же поисками пройти уже сданную первую половину.

Решение

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

Дальше обход сайтов - главная, страницы контактов, руководства, отделов, закупок, арендаторам. Ворота на почту пришлось расширять по ходу. В столицах контакт выглядит как info собаки домен, а в регионах гостиница пишет почту на бесплатном ящике, и по строгому правилу она терялась.

Профильные контакты ищутся по канонному списку должностей. Рядом с должностью берётся ФИО, но только явное, с отчеством или инициалами, почта и телефон с добавочным. Ворота против мусора - почта приёмной и общий телефон объекта в профильный столбец не пишутся, нужна фамилия, почта отдела или добавочный номер.

Выборочная проверка шести случайных строк с заходом на страницу-источник нашла две ошибки, и обе оказались системными. Телефон собирался из хвоста номера госрегистрации - внутри него нашлась восьмёрка и за ней одиннадцать цифр. И почта соседнего блока приписывалась должности, потому что контакт брался из окна и слева, и справа, а слева на странице стоял ресторан при отеле. После правки перегнал уже собранное заново - 23 ячейки из 78 оказались неверными.

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

Результат

Первую половину заказчик принял со словами, что качество полностью устраивает, и сразу заказал продолжение. Итог - тысяча строк без дублей, у каждой почта и телефон с официального сайта и ссылка на страницу, где они стоят. Пересечений между двумя половинами ноль, проверено сразу по трём ключам - домен, почта и пара «название плюс город». Расширение правила на почту дало по тем же объектам 1 348 строк с контактом вместо 735. Контрольная сверка двадцати случайных строк против живых страниц сошлась на семнадцати автоматом, три перепроверил руками.


Стек технологий

  • Python Python Язык программирования

Оцените кейс
Спасибо за оценку
Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Оставить заявку