Всем привет! Сегодня поговорим о парсинге данных с сайтов сетей медицинских клиник. Мы выбрали это направление по двум причинам: 1 — это высокодоходный бизнес; 2 — все катаклизмы, которые происходят в мире не сильно «качают» эту сферу к знаку минус. Т.к. можно отказать себе в походе в ресторан, покупке нового айфона, даже осознать невозможность взять ипотеку. Но, если не дай Бог появились проблемы со здоровьем — то тут не до экономии. И к сожалению, даже имея полис ОМС, реально записаться к нужному специалисту получается по факту не раньше, чем через 2–3 недели. Особенно это касается жителей больших городов. Именно поэтому мы начали парсить данные клиник г. Москвы.
Сразу оговоримся статья эта вероятно представляет наибольший интерес для бизнес анализа. Фокусироваться на технических деталях в этот раз не будем. Ограничимся минимумом: парсер написан на PHP с использованием библиотеки DiDom. Если посмотреть нашу предыдущую статью про парсинг Twitter, то там мы применяли python + selenium. Но DiDom быстрее selenium, поэтому стек был выбран именно этот.
Вернемся к основной канве. Необходимо отметить, что разделение труда в медицинской сфере продолжает расти. Появляются новые узкоспециализированные специалисты. И на них есть спрос. Я сам обладаю двумя полисами (ОМС и ДМС), но за последние два года пару раз столкнулся с ситуацией, когда нужного мне специалиста ни один полис не покрывал. И пришлось рассматривать варианты получения услуги либо в государственной больнице через направление (долго и бесплатно), либо за дополнительную плату в специализированной коммерческой клинике.
И так мы взяли две популярные сети медицинских центров в Москве: MedSwiss и МЕДСИ. Данные брались с публичных сайтов www.medswiss.ru и medsi.ru соответственно. MedSwiss состоит из 13-и точек в Москве и 3-х точки в Санкт‑Петербурге. Все они обладают плюс/минус одинаковыми наборами услуг.
А МЕДСИ оказалась значительно большей по размеру, хоть и ограниченная одним регионом присутствия (Москва):
3 шт. клинико-диагностический центр;
27 шт. детская клиника;
52 шт. клиника первичного приема;
3 шт. клиника премиум сегмента;
1 шт. многофункциональный медицинский центр;
1 шт. департамент централизованной помощи на дому;
1 шт. Центр психического здоровья МЕДСИ;
Соответственно получение данных МЕДСИ далось чуть сложнее, ввиду навороченности структуры сайта, обусловленной иерархией и объемом самой сети. Но тем не менее мы справились. Правда пока ограничились только несколькими разделами услуг. Но об этом позже.
И так, давайте посмотрим на структуру результатов. По MedSwiss получилось 6777 платных услуг в разрезе 75 разделов. Пример данных:
ли построить диаграмму по разделам, у которых количество услуг > 100 шт., то из 76 разделов получаем 18 лидеров:
Стоматология, диагностика инфекционных заболеваний и аллергология сильно отрываются от остальных в этом хит параде.
Посмотрим теперь срез по ценникам в логарифмическом масштабе по перцентилю > 300К руб. Т.к. если смотреть в обычном масштабе, то Стоматология превращается в ракету по сравнению с остальными.
Но давайте для интереса уберем Стоматологию, как лидера, и посмотрим доли в % по первым 20-ти:
Дальше можно посмотреть еще глубже детализацию самых объемных разделов по услугам. Но пока остановимся на этом.
И теперь, давайте посмотрим, что у нас есть по МЕДСИ. Как говорилось выше, мы ограничились только 5 разделами услуг:
Лечение бессонницы и нарушений сна;
Лечение головной боли;
Лечение полиневропатий;
МРТ (магнитно-резонанснаятомография);
Прием врача-невролога;
Если посмотрим на сравнительный анализ по количеству услуг в этих 5-ти категориях, то получим:
Картинка выше очень объемная, поэтому давайте ограничимся, например, только разделом Лечение головной боли:
Наверное, один из интересных моментов – это сравнение стоимости услуг сетей. Пока мы не стали заморачиваться с автоматизацией такого дэшборда. Но для примера давайте сравним прием невролога:
Примечательно, у MedSwiss ценники на одну и ту же услугу варьируются в зависимости от категории клиники. У МЕДСИ цены отличаются в зависимости от клиники, в которой оказана услуга. Также видно, что нижняя планка стоимости приема врача‑невролога в MedSwiss сопоставима с верхней планкой стоимости этой же услуги в МЕДСИ. Это интересное наблюдение, хотя и касается только невролога. При этом мы помним, что МЕДСИ превосходит кратно MedSwiss в размерах. Возможно у сетей разные стратегии ведения бизнеса. Но это конечно по‑хорошему нужно проверять по всем услугам, если задаться такой целью. И возможно мы это сделаем в следующей статье, если поймем по комментариям, что данная тема представляет интерес.
А на этом мы завершим 1ч. на тему парсинга медицинских услуг и анализа полученных открытых данных. Будем рады комментариям/вопросам/советам. Также, если есть предложения по сотрудничеству или какие‑либо другие запросы — можно писать в личку здесь или в тг @gromstorm
P. S. Пару слов о нас. Мы команда из 2-х человек. Владелец продукта и разработчик. Опыт в ИТ в корпоративном сегменте за плечами довольно большой. Первые приложения писали еще в начале 2000-х (тогда они назывались программами). За последние несколько лет перепробовали много разных идей и гипотез, участвовали и побеждали в хакатонах, Цифровой прорыв и т. п. Работаем в крупных компаниях: дизайн/разработка сайтов и финансовый сектор. Это далеко не первый наш подход к снаряду на тему парсинга. Ранее мы уже парсили крупные порталы рунета, но написать об этом решили сейчас. До связи и спасибо за прочтение!)