Ціни на аналізи в Києві сильно різняться між лабораторіями. Той самий загальний аналіз крові, гормони щитовидки чи комплексний чекап у різних мережах лабораторій можуть коштувати по-різному, іноді в рази. Для пацієнта це питання економії. А для самих лабораторій, клінік і медичних сервісів це питання конкуренції: якщо ваша ціна вища за сусідню на 30%, пацієнт піде туди.
Порівняти ціни на аналізи руками майже нереально. У кожної лабораторії сотні і тисячі послуг, свої назви, свої коди, свої знижки. Розповім, як влаштований автоматичний збір прайсів п’яти великих лабораторій Києва і як із них виходить одна таблиця порівняння.

Навіщо це потрібно
- Лабораторіям – бачити, де їхня ціна вища за ринок, а де можна підняти без втрати пацієнтів.
- Клінікам і медичним центрам, які відправляють аналізи в партнерську лабораторію, – розуміти, чи вигідний поточний партнер.
- Медичним сервісам і агрегаторам – показувати користувачам порівняння цін.
- Страховим компаніям – оцінювати вартість програм, що включають аналізи.
Головне тут – регулярність. Лабораторії міняють ціни, запускають акції, додають нові комплекси. Звіт, зроблений раз, застаріває за місяць. Тому порівняння збирається щотижня, і видно не тільки поточні ціни, а й зміни.
Чому кожна лабораторія – окрема задача
П’ять сайтів – п’ять різних способів віддати прайс. Ось як це виглядає на практиці:
- Одна сторінка з усім прайсом. Найпростіший випадок: вся таблиця послуг лежить на одній сторінці. Забрали, розібрали, готово.
- Каталог з пагінацією. Прайс розбитий на десятки сторінок. Треба пройти всі по черзі і нічого не пропустити.
- Внутрішній API. Сайт підвантажує послуги через API: понад сотню підкатегорій, у кожній кілька сторінок по десять послуг. Спочатку треба дізнатися, скільки сторінок у кожній підкатегорії, потім пройти всі.
- Багаторівневе меню з сесією. Найскладніший варіант: категорії відкриваються по рівнях, кожен рівень підвантажується окремим запитом із захисним токеном сесії. Обхід повторюється, поки не закінчаться вкладені рівні.
Для кожної лабораторії написаний свій модуль, який знає її сайт. Зверху – спільна частина: збереження, порівняння і звіт. Якщо лабораторія змінила сайт, правиться тільки її модуль.
Найважча частина – зіставити однакові аналізи
Зібрати прайси – половина справи. Друга половина – зрозуміти, що “Загальний аналіз крові з лейкоцитарною формулою” в одній лабораторії і “Клінічний аналіз крові (ЗАК) + ШОЕ” в іншій – це одне й те саме або ні.
Назви послуг приводяться до єдиного вигляду: прибираються зайві символи, дужки, уніфікуються скорочення і регістр. Після цього однакові аналізи групуються, і для кожної групи видно ціни у всіх лабораторіях, де він є.
Там, де лабораторія вказує, що входить у комплекс, це теж зберігається. Комплекси часто називаються однаково, але мають різний склад. Без цієї колонки порівняння комплексів буде некоректним.

Що в звіті
Результат – Excel-файл, який приходить щотижня:
- Аркуш “Всі послуги”. Повний прайс усіх лабораторій: лабораторія, категорія, код, назва послуги, ціна, ціна зі знижкою, що входить.
- Порівняння. Для кожного аналізу: в яких лабораторіях він є, мінімальна і максимальна ціна, різниця.
- Ваша позиція. Якщо звіт для лабораторії, окремо видно, де ви найдешевші, де найдорожчі і на скільки.
Ціна зі знижкою виноситься окремою колонкою. Акції в лабораторіях постійні, і пацієнт бачить саме акційну ціну. Порівнювати тільки базові ціни – значить не бачити реальної конкуренції.
Підводні камені
- Різні міста – різні прайси. Ціни в лабораторіях залежать від міста. Звіт збирається для конкретного міста, а для кількох міст – окремо по кожному.
- Сайти змінюються. Лабораторії оновлюють сайти, міняють структуру каталогу. Тому є перевірка: якщо з якоїсь лабораторії прийшло підозріло мало послуг, звіт не відправляється мовчки, а я отримую сповіщення і виправляю.
- Не все зіставляється автоматично. Частина послуг унікальна або названа так, що автоматичне зіставлення не впевнене. Такі позиції не вигадуються, а лишаються окремо. Краще чесна порожня клітинка, ніж неправильне порівняння.
Не тільки лабораторії
Та сама схема працює для будь-якої ніші, де послуги мають прайс на сайті і ціни порівнюються між компаніями:
- стоматології і медичні центри;
- ветеринарні клініки;
- СТО і шиномонтажі;
- салони краси;
- курси і навчальні центри.
Різниця тільки в модулях під конкретні сайти. Зіставлення, порівняння і щотижневий звіт – ті самі.
Як часто оновлювати порівняння
Для більшості задач вистачає одного звіту на тиждень. Лабораторії не міняють базові ціни щодня, а акції зазвичай тривають від тижня до місяця. Щотижневий звіт показує і зміни цін, і старт нових акцій.
Частіше має сенс збирати в двох випадках: якщо ви агрегатор і показуєте ціни користувачам, або якщо у вас самих часто змінюється прайс і треба бачити реакцію конкурентів. Тоді збір іде щодня, а звіт показує тільки зміни за добу: що подешевшало, що подорожчало, які послуги з’явилися і зникли.
Усі зрізи зберігаються. Через кілька місяців видно, як змінювалися ціни на ключові аналізи в кожній лабораторії і хто частіше за інших запускає акції.
Як замовити
Напишіть, які компанії і в якому місті вас цікавлять, і що ви хочете бачити у звіті. Я подивлюся сайти, скажу, наскільки складно забрати прайс з кожного, і скільки коштуватиме регулярне порівняння. Схожа задача з моніторингом цін конкурентів описана на сторінці парсинг сайтів із захистом від ботів.
