Хабрахабр

[Из песочницы] Python Selenium и Krisha.kz. Первые в Big Data

Предисловие

Вот и в этот раз, увлёкшись изучением программирования на языке Python, задался вопросом, где его можно применить, кроме как при создании фотосепаратора (статья про него будет чуть позже) и программы учета продаж, и натолкнулся на статью про большие данные (Big Data). Изучать что-то новое всегда интересно, это захватывает тебя полностью, по крайней мере у меня так. Изучив материалы по Big Data, понял, что направление это весьма перспективно и стоит потратить время на его изучение.

Конечно в сети есть готовые наборы данных, где тебе полностью разжуют что и как делать, но по мне удовольствия от такого занятия мало, хотя знания и опыт безусловно получишь. После этого приступил к изучению невообразимого количество статей и просмотрев пару десятков обучающих видео роликов достиг точки, в которой новая информация категорически не воспринималась, требовалось использование полученных навыков и знаний на практике. со сбора данных (привет Web scrapping) до структурирования полученных данных для последующего анализа, думаю это более полезно с точки зрения обучения и практического применения. Но, если начать путь с нуля, т.е.

Начало пути

сайта). Начался поиск подходящего кандидата (т.е. Дальнейшим критерием для отбора сайта было практическое применение результатов, полученных в ходе анализа. После недолгих поисков остановился на Market, OLX, Kolesa и Krisha.

Cайт Krisha.kz является популярным сайтом, где люди со всего Казахстана подают объявления по продаже, покупке или аренде квартир, домов и офисов, и на этом сайте самое большое количество объявлений. Под этот критерий подходил только один сайт Krisha.kz. Бегло изучив объявления на сайте, решил сконцентрироваться на объявлениях по продаже квартир в городе Астана с целью определения следующего:

  1. Проблемные дома, признак — количество объявлений превышает среднее количество объявлений на дом;
  2. Успешные риэлтерские компании, признак — количество опубликованных объявлений;
  3. Скрытые предприниматели, которые перепродают квартиры. Думаю, это было бы полезным для налоговых органов;
  4. Недобросовестные риелторы, которые используют чужие фотографии квартир для привлечения клиентов. Скажу сразу, пришлось отказаться от этой идеи, ввиду ограниченности ресурсов, так как пришлось бы хранить у себя огромное количество фотографий, а я располагаю только ноутбуком и домашним интернетом.

Сбор информации

Так как ранее не сталкивался с задачей по сбору данных с сайта, обратился к незаменимому помощнику — Google.com. Определив основные направления анализа, приступил к сбору информации при помощи Web scrapping. Благо установка библиотек на Python до удивления проста и заключается в наборе команд на командной строке “pip install selenium” и все, библиотека установлена. Для языка программирования Python предлагается куча разных библиотек — BeutifulSoup, Urllib, Selenium и т.д., но в какой-то статье на Habrahabr или github (полезные сайты для русскоговорящих, занимающихся программированием) наткнулся на рекомендацию, что для Web Scrapping лучше подойдет Selenium.

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

Эта проблема была решена с помощью просмотра дополнительного материала в инете и документации selenium. Этой информации было достаточно для задач 1 и 2, но для задачи 3 требовался номер телефона, который можно получить, только если открыть объявление и нажать на кнопку “Показать телефон”, что усложняло задачу.

Время, необходимое для сбора информации

Астана), то это занимает от 1 до 2 часов в зависимости от скорости интернет провайдера, а вот с получением номера телефона требуется куда больше времени — от 24 часов. Если собирать только основную информацию, без номера телефона (порядка 23 000 — 27 000 объявлений только по г.

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

  1. Сбор информации без номера телефона, но где указывается отдельная ссылка на объявление.
  2. Получение номера телефона по ссылке на объявление, полученного на первом этапе.
    После всех этих работ получаем excel файл следующего содержания:

image

Далее для анализа требуется структурировать данные таким образом, чтобы каждый столбец содержал только одну информацию: Как видно, имеем не структурированные данные.

  1. столбец “RSS” необходимо разбить на 4 столбца: количество комнат, площадь квартиры, этаж квартиры, этажность дома;
  2. столбец “Advertiser” разбить на: кто подал объявление, и если это агентство, то указать название агентства;
  3. столбец Street: убрать лишнюю информацию о пересечении улиц и обработать таким образом, чтобы получить 2 столбца: название улицы и номер дома
  4. столбец “Description” выделить отдельные столбцы для: года постройки, района и названия жилого комплекса.

Анализ

Обзор объявлений

Вначале определяем основные лица, подающие объявления на сайте. Имея более структурированную информацию, переходим к анализу данных. по 19 апр. Ниже представлена диаграмма по объявлениям с 14 апр. 2018 г.

image

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

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

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

Проблемные дома

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

Риэлтерские агентства

image

Эта гистограмма отражает количество поданных объявлений по продаже квартир риэлтерскими агентствами в период с 14 апр по 19 апр 2018 г.

Далее по убыванию количества объявлений идут такие риэлтерские агентства как “Real Price ”, “Витрина”, ”Новая площадь Inc.”, у них более 500 объявлений. Больше всего объявлений опубликовано от риэлтерского агентства “Этаж”, за указанный период количество объявлений составило — 1 929.

Если допустить, что критерием успешности на рынке недвижимости в сфере риэлтерских услуг является количество подданных объявлений (чем больше объявлений, тем больше шансов, что клиент их увидит и обратится в агентство), то бесспорный лидер — риэлтерское агентство «Этаж» .

Риэлторы или скрытые предприниматели?

image

Так на первом столбце с цифрой “2” показано, что более 1460 человек подали более 2 объявлений на сайте. На этой гистограмме показано количество объявлений, опубликованных с одного номера телефона.

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

Если бы я был налоговым органом, то сначала определил бы ИНН владельцев номеров, проверил бы по базе сколько имущества на него было зарегистрировано и средний срок владения имуществом, если срок владения меньше 1-2 лет или он в течение короткого времени часто покупает и продает квартиры по одной и той же цене (то есть якобы без экономической выгоды), то необходимо более пристально приглядеться к данному владельцу.

Вывод

Необходимо отметить, что в данной статье анализ данных был поверхностным, и я больше стремился понять с какими сложностями и подводными камнями можно столкнуться при получении и обработке данных, например:

  1. Недостаточность информации для достижения изначальных целей, как к примеру в случае с идентификацией проблемных домов.
  2. Ограниченное время.
  3. Необходимо точно определить задачу и следовать ей. Во время проведения этого анализа приходилось бороться с безудержным желанием рассмотреть все со всех сторон, и в конечном итоге в голове проходила своеобразная борьба идей.

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть