Pull to refresh

Парсинг сайтов или долгострои Московской области

Reading time 8 min
Views 10K

Ознакомившись с рынком первичного жилья в Московской области, мы, конечно же, столкнулись с наличием обманутых дольщиков и проблемных объектов, так называемых «долгостроев». Естественно, встал вопрос, насколько вероятна такая ситуация.


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


Источники данных


Для оценки доли долгостроев в общем количестве необходима база новостроек с признаками, по которым можно классифицировать объект как долгострой. Мы остановили свой выбор на novostroykin.ru, так как он по сравнению с аналогичными сайтами (novostroy-m.ru, mskguru.ru, novostroev.ru, novostroy.ru, novostroykirf.ru) на момент проведения анализа содержал наибольшее количество объектов – 1756 против 1093, 674, 426, 1296, 392 у конкурентов соответственно.


По результатам первичного парсинга страниц novostroykin обнаружились задвоения – некоторая (небольшая) часть новостроек занесена покорпусно, также присуствуют объекты с пометкой «ПРОЕКТЫ» – выяснилось, что по ним не было ни одной продажи. После коррекции (покорпусные записи объединены, проекты исключены) в нашей выгрузке осталось 1641 объектов, все еще больше чем у сайтов-конкурентов.


Важно отметить, что перечисленные ресурсы являются рекламными. Несмотря на законодательное требование достоверности (ст.5 №38-ФЗ «О рекламе»), корректность сведений остается на совести владельцев сайта. Потому была выполнена еще одна точечная проверка корректности сведений по объекту, состояние которого известно непосредственно от лиц, заинтересованных в предоставлении достоверных данных. Таким объектом был выбран ЖК «Белые росы» (г.о. Котельники). Из перечисленных выше сайтов:


  1. На novostroykin.ru, novostroev.ru статус стройки и наименование застройщика корректны;
  2. На mskguru.ru неверно указаны сроки сдачи;
  3. На novostroy-m.ru указаны сданными незавершенные корпуса, указано возведение корпусов, строительство которых еще не начиналось;
  4. На novostroy.ru некорректно указан застройщик – ГВСУ Центр (старейший московский застройщик, основанный на базе Главного военно-строительного управления Министерства обороны, образованного 27 января 1964 года) вместо ООО "Стройкомфорт" (юридическое лицо, образованное специально для данного проекта);
  5. На novostroykirf.ru сведения по объекту отсутствуют.

Таким образом, novostroykin всё еще лидирует в качестве источника информации для проведения оценок и анализа рынка.


Помимо рекламных сайтов существуют и официальные открытые источники. С 01 января 2018 года в РФ заработала государственная Единая информационная система жилищного строительства (ЕИСЖС), призванная повысить прозрачность долевого строительства. Однако на 29.01.2018 проверочный объект в ней отсутствовал, несмотря на то, что согласно п.п. 5,6 ст. 23.3 №214-ФЗ в системе должны размещать сведения не только застройщики, но и контролирующие органы, а именно РосРеестр (сведения о земельном участке), ГлавСтройНадзор (результаты проведенных проверок, которые имели место быть в отношении указанного объекта). Сопоставить данные ЕИСЖС с рекламными сайтами по количеству объектов также не удалось – в ЕИСЖС сведения занесены покорпусно, на рекламных ресурсах у части новостроек сведения по корпусам отсутствуют, потому автоматизированная проверка данных невозможна.


Итого, для выполнения оценочной классификации объектов решено использовать данные с «новостройкина».


Собственно, парсинг


Парсинг осуществлен с использованием фреймворка Scrapy. Адрес страницы объекта имеет вид www.novostroykin.ru/novostroyki/название_на_латинице/. Обход сайта производился в несколько этапов. Первый этап – обход страниц каталога, содержащего ссылки на новостройки. Второй – вычитывание данных по каждой новостройке из соответствующей страницы и сохранение результатов в файл. Код паука на Python:


import scrapy

class NovostroykinSpider(scrapy.Spider):
    name = "novostroykin"

    def start_requests(self):
        urls = [
            "https://www.novostroykin.ru/novostroyki/find/?t=2&pt=0&ignorenf=1&nf_mode=0&pot=0&pdo=0&reg_mo=1&dometro=0&k1=&k2=&k3=&k4=&beza=&ipoteka=&fav=&econom=&s2017=&rassrochka=&razr=&prod=&warh=&dometrot=&me=&snewmetro=&sdan2=&sdan=&sr_2017_4=&sr_2018_1=&sr_2018_2=&sr_2018_3=&sr_2018_4=&sr_2019=&sr_2020_0=&napl=&otdelka=&balkon=&r=&ord=3&pg=" + str(i) for i in range (1,75)]

        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):            
        for url in response.xpath("//*[@id='nff_list']/div/div[2]/div/a/@href").extract():
            next_url = response.urljoin(url)
            if  next_url.find("adrai.novostroykin.ru/wow/")==-1:
                yield scrapy.Request(next_url, callback=self.parse_n)

    def parse_n(self, response):       

        l = response.xpath("//*[contains(@id,'korpinfo_') and string-length(@id)>10]/p[2]/span[2]/text()|//*[contains(@id,'korpinfo_') and string-length(@id)>10]/p[2]/text()").extract()
        l2 = [s for s in l if s != " "]
        StrKeyDate = "/".join(l2)
        if StrKeyDate is None:
            StrKeyDate = ""
        else:
            StrKeyDate = StrKeyDate.replace("\xa0","")                

        l = response.xpath("//*[contains(@id,'korpinfo_') and string-length(@id)>10]/p[3]/span[2]/text()|//*[contains(@id,'korpinfo_') and string-length(@id)>10]/p[3]/text()").extract()
        l2 = [s for s in l if s != " "]
        StrState = "/".join(l2)
        if StrState is None:
            StrState = ""
        else:
            StrState = StrState.replace("+ /","+ ")        

        yield {
                'Name': response.xpath("//*[@id='main_container_table']/tr/td[2]/div[2]/h1/text()").extract(),
                'Address': response.xpath("//*[@id='main_container_table']/tr/td[2]/div[2]/div/index/div[5]/text()").extract(),                
                'Description': " ".join(response.xpath("//*[@id='tab1_1']/div/div/div/div/h3[contains(.,'Что здесь будет')]/parent::*/p/text()").extract()),
                'PayAttention': " ".join(response.xpath("//*[@id='tab1_1']/div/div/div/div/h3[contains(.,'На что обратить внимание')]/parent::*/p/text()").extract()),
                'Buildings': "/".join(response.xpath("//*[contains(@id,'nkt2_')]/a/nobr/text()").extract()),                
                'KeysDate': StrKeyDate,
                'State': StrState,
                'BuildingType': response.xpath("//*[@id='tab2_1']/div/p[1]/text()").extract(),                           
            }

В процессе парсинга выяснили, что структура страниц новостроек менялась во времени – менялось DOM-дерево, добавлялись и/или удалялись поля. Проблема решалась повторной выгрузкой страниц с изменением соответствующих Xpath в коде паука.


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


Анализ: критерий «долгостроя»


Перечень новостроек с сорванными сроками строительства мы взяли из общедоступных источников:


  1. Сводный перечень проблемных объектов на территории МО на 29.12.2017 и ход выполнения строительных работ от Министерства строительного комплекса Московской области;
  2. Список объектов, обсуждавшихся на совещаниях Рабочей группы Мособлдумы по решению проблемы обманутых дольщиков Московской области в 2017 году;
  3. Статус достройки проблемных объектов СУ-155 – содержит все недостроенные объекты СУ-155, даже если работы по объекту полностью завершены другим застройщиком от АКБ «Российский капитал»;
  4. Перечень объектов из реестра «обманутых дольщиков» (граждан, чьи денежные средства привлечены для строительства многоквартирных домов и чьи права нарушены на 01.05.2017) – содержит все объекты, внесенные в этот реестр, даже если они сданы на отчетную дату (в общем доступе не размещается).

Все объекты, обнаруженные в перечисленных источниках, отмечали признаком «долгостроя».


Для объектов, не попавших в указанные выше списки «долгостроя», но имеющих значение «строительство приостановлено» в поле «Состояние» на новостройкине были автоматически загружены и разобраны последние сообщения на форуме. Если в сообщениях содержались словосочетания вида «обращение обманутых дольщиков к В.В.Путину», «митинг», «мошенники», «банкротство» и т.д., то объект также относили к долгостроям.


Однако, полученный перечень долгостроев не является исчерпывающим, так как:


  1. С июля 2017 года Минстрой МО удалил реестр «обманутых дольщиков» из открытого доступа – самые свежие данные, которыми располагаем – май 2017 года;
  2. Сведения в реестр «обманутых дольщиков» заносятся с существенной задержкой. Прием документов для вступления в реестр по всей Московской области ведется силами всего двух чиновников, которые работают неполную рабочую неделю и неполный рабочий день. Принять всех желающих невозможно, потому очередь на подачу документов растянулась на несколько месяцев. Кроме того, поданный пакет документов рассматривается комиссией, которая собирается раз в месяц. Дольщик заносится в реестр только после положительного решения комиссии;
  3. «Сводный перечень проблемных объектов на территории МО» не содержит всех проблемных объектов. Согласно закона МО №84/2010-ОЗ, объект должен быть признан проблемным, если застройщик просрочил более чем на 9 месяцев исполнение обязательств по договорам, заключенным с гражданами и (или) иными лицами, чьи денежные средства привлечены для строительства данного многоквартирного дома. В перечень проблемных новостройку должен включить соответствующий муниципалитет. Но местные власти в этом, естественно, не заинтересованы, так как низкий уровень проблемности строительства является одним из критериев успешности их работы. В настоящее время включение в этот перечень происходит только по решению суда. Например, суд принудил муниципалитет г.о. Химки признать ЖК «Авиатор» проблемным, однако через месяц после признания муниципалитет отменил свое решение. Вышеупомянутый ЖК «Белые росы» в г.о. Котельники не признан проблемным, хотя просрочка составляет 2 года 4 месяца. В данный момент муниципалитет оспаривает судебное решение суда о признании объекта проблемным в апелляционной инстанции. ЖК «Грин сити» (г.о. Люберцы) – после смены застройщика объект удален из перечня проблемных, однако стройка не ведется и новым инвестором;
  4. Многие покупатели недвижимости недостаточно активны и плохо знают законодательство, для того чтобы попасть в официальные списки, а также не пользуются форумом novostroykin.ru для обсуждения своих проблем. Например, ЖК «Лобня Сити» при задержке сдачи более 2-ух лет, ЖК «Котельнические высотки» с задержкой сдачи 6 месяцев не значатся ни в одном из вышеупомянутых списков;
  5. Случаев достоверного «исцеления» объектов от проблемности исчезающе мало и ими в рамках полученной статистики можно пренебречь.

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


Результаты


Вероятность долгостроя при покупке новостройки рассчитывалась как отношение количества долгостроев ко всем новостройкам, с плановым сроком сдачи хотя бы одного корпуса до 30.06.2017 (в поле «Сдача в эксплуатацию»). Срок сдачи до 30.06.2017 выбран, так как по законодательству, объект может попасть в официальные перечни долгостроев только после задержки от 6 месяцев и выше. Если поле «срок сдачи» было пусто или «нет данных», из базы для расчета такой объект не удалялся. Стоит отметить, что на новостройкине поле «Сдача в эксплуатацию» содержит не первоначальный, а откорректированный срок сдачи, что занижает вероятность долгостроя. Например, ЖК «Котельнические высотки»: согласно проектной декларации срок сдачи 2 квартал 2017, согласно новостройкина — 1 квартал 2018. Поэтому в наших расчетах этот ЖК не участвует.


По нашим данным, вероятность покупки долгостроя в Московской области составила 15%. По обсуждавшимся выше причинам (не все долгострои, постоянное обновление срока сдачи) вычисленный показатель является оценкой снизу, реальная величина может быть выше. Однако и он вдвое выше, чем «уровень токсичности строительной отрасли в 7%» из официального заявления министра строительства и жилищно-коммунального хозяйства РФ Меня М.А. Мы не беремся судить вызвано ли такое расхождение различием в данных или в методике расчета или особым масштабом проблемы в Подмосковье. Однако, помимо покупки заведомого долгостроя (в нашей выборке таковых 222), также возможен риск покупки самостроя — таких объектов порядка 200 на конец 2017 года, 400 на конец 2012 года по данным Министерства строительного комплекса МО. Оценка того, как пересекаются самострои с нашей выборкой, не проводилась.


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


В таблицах ниже приведены вероятности долгостроя в разрезе муниципалитетов Московской области (не является указанием к действию!)


Таблица №1. Вероятность долгостроя в муниципалитетах со слабой строительной активностью (в продаже менее 10 объектов)


image


Таблица №2. Вероятность долгостроя в муниципалитетах со средней и сильной строительной активностью (в продаже более 10 объектов)


image

Tags:
Hubs:
+21
Comments 7
Comments Comments 7

Articles