Python Selenium И Krisha.kz. Впервые В Сфере Больших Данных



Предисловие Узнавать что-то новое всегда интересно, это захватывает полностью, по крайней мере меня.

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

Изучив материалы по Big Data, я понял, что это направление очень перспективное и стоит потратить время на его изучение.

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

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

Но, если начинать с нуля, т. е.

со сбора данных (привет парсинг веб-сайтов) до структурирования полученных данных для последующего анализа, то я считаю, что это более полезно с точки зрения обучения и практического применения.



Начало пути

Начался поиск подходящего кандидата (т.е.

сайта).

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

Только один сайт Krisha.kz соответствовал этому критерию.

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

Кратко изучив объявления на сайте, я решил сконцентрироваться на объявлениях о продаже квартир в городе Астана, чтобы определить следующее:

  1. Проблемные дома, знак – количество объявлений превышает среднее количество объявлений на дом;
  2. Успешные компании по недвижимости, признаком которых является количество опубликованных объявлений;
  3. Скрытые предприниматели, перепродающие квартиры.

    Я думаю, это было бы полезно для налоговых органов;

  4. Недобросовестные риэлторы, которые используют чужие фотографии квартир для привлечения клиентов.

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



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

Определив основные направления анализа, я начал собирать информацию с помощью парсинга веб-страниц.

Поскольку ранее я никогда не сталкивался с задачей сбора данных с сайта, я обратился к незаменимому помощнику – Google.com. Для языка программирования Python предлагается куча разных библиотек — BeutifulSoup, Urllib, Selenium и т. д., но в какой-то статье на Хабрахабре или github (полезные сайты для русскоязычных, занимающихся программированием) я наткнулся на рекомендацию о том, что Selenium лучше подходит для веб-скрапинга.

К счастью, установка библиотек на Python на удивление проста и состоит из набора в командной строке команды «pip install selenium» и всё, библиотека установлена.

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

, кто предоставил объявление (собственник или агентство), описательная часть (тип ремонта, название ЖК) и количество просмотров.

Этой информации было достаточно для задач 1 и 2, но для задачи 3 требовался номер телефона, который можно получить, только открыв объявление и нажав кнопку «Показать телефон», что усложняло задачу.

Эта проблема была решена путем просмотра дополнительных материалов в Интернете и документации по селену.



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

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

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

После десятков запусков скрипта программа часто экстренно закрывалась и приходилось начинать поиск заново.

В связи с этим возникает необходимость разделить этап сбора информации на два подэтапа:

  1. Сбор информации без номера телефона, но где указана отдельная ссылка на объявление.

  2. Получение номера телефона по ссылке на объявление, полученное на первом этапе.

    После всей этой работы получаем excel-файл следующего содержания:



Python Selenium и Krisha.kz. Впервые в сфере больших данных

Как видите, у нас есть неструктурированные данные.

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

  1. графу «RSS» необходимо разделить на 4 графы: количество комнат, площадь квартиры, этаж квартиры, этажность дома;
  2. Колонка «Рекламодатель» разделена на: кто подал объявление, и если это агентство, то укажите название агентства;
  3. Столбец «Улица»: удалите ненужную информацию о перекрестках улиц и обработайте ее таким образом, чтобы получить 2 столбца: название улицы и номер дома.

  4. В графе «Описание» выделить отдельные графы: год постройки, район и название жилого комплекса.



Анализ



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

Имея более структурированную информацию, переходим к анализу данных.

Сначала определяем основных лиц, подающих рекламу на сайт. Ниже приведен график анонсов от 14 апреля.

до 19 апреля 2018 г.



Python Selenium и Krisha.kz. Впервые в сфере больших данных

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

Интересно, что даже банки начали размещать на сайте рекламу.

Судя по всему, они продают заложенные квартиры.

Более половины объявлений — от агентств недвижимости.

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

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



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

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

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

Эта работа требует дополнительного времени, поэтому мне пришлось отложить эту работу на потом из-за нехватки времени.



Агентства недвижимости



Python Selenium и Krisha.kz. Впервые в сфере больших данных

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

Наибольшее количество объявлений опубликовало агентство недвижимости «Таж»; за указанный период количество объявлений составило 1929. Далее по убыванию количества объявлений идут такие агентства недвижимости, как «Real Price», «Vitrina», «New Square Inc.», у них более 500 объявлений.

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



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



Python Selenium и Krisha.kz. Впервые в сфере больших данных

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

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

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

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

якобы без экономической выгоды), то к этому собственнику нужно присмотреться.



Заключение

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

  2. Ограниченное время.

  3. Необходимо четко определить задачу и следовать ей.

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

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

Теги: #Большие данные #Интеллектуальный анализ данных #Большие данные

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.