Devlly

get in touch

Devlly — студія розробки. Автоматизуємо бізнес: від Telegram-бота до повноцінної CRM/ERP-системи.

Розсилка

Парсинг цін конкурентів: як моніторити ринок автоматично

Ціна — найшвидший важіль впливу на продажі й водночас найпростіший спосіб втратити маржу. Якщо ви на 15% дорожчі за ринок, покупець просто йде до сусіднього магазину. Якщо на 15% дешевші — ви подарували собі збиток там, де могли заробити. Дізнатися вручну, скільки коштує той самий товар у конкурентів, неможливо: сто позицій у десяти магазинах — це тисяча перевірок щодня. Саме тому компанії будують автоматичний збір цін: робот обходить сайти конкурентів, знімає ціни й наявність, зіставляє їх з вашим прайсом і показує, де ви програєте. Розберімо, як це працює на практиці, які пастки чекають на кожному етапі й що тут дозволено законом.

Навіщо бізнесу парсинг цін конкурентів

Головна причина — динамічне ціноутворення. Ринок рухається щодня: конкурент запустив акцію, розпродає залишки, підняв ціну через курс або взагалі вивів позицію з асортименту. Без моніторингу цін ви дізнаєтеся про це через тиждень — за падінням замовлень. З моніторингом ви бачите зміну наступного ранку й реагуєте усвідомлено: десь опускаєте ціну на 3%, щоб не втратити трафік, десь навпаки піднімаєте, бо єдиний конкурент з наявністю — це ви. Головний ефект тут не в тому, щоб «продавати дешевше за всіх», а в тому, щоб перестати демпінгувати наосліп. Багато магазинів роками тримають знижку на позиціях, де конкуренти давно дорожчі: кожен такий товар — це втрачені відсотки маржі в кожному чеку.

Другий сценарій — контроль власного асортименту та цін дилерів. Виробники й дистриб'ютори через автоматичний збір цін перевіряють, чи не порушують партнери рекомендовану ціну й чи не демпінгує хтось один, псуючи ринок усім. Третій сценарій — аналіз конкурентів як стратегія: які категорії вони розширюють, які позиції зникли з їхнього складу, як часто вони змінюють ціни, хто в ніші є лідером зниження. Ці дані потрібні не лише щоб реагувати, а щоб планувати закупівлю. Тільки одразу дайте собі відповідь на просте запитання: яке рішення я ухвалю, побачивши цю цифру? Якщо відповіді немає, збирати цю цифру не варто.

Матчинг товарів — найскладніше в моніторингу цін

Зняти цифру зі сторінки — легка частина. Складна — довести, що на сторінці конкурента саме ваш товар. Найнадійніший ключ — штрихкод EAN або GTIN: якщо він є в обох каталогах, зіставлення однозначне й ніяких сумнівів немає. Далі йде артикул виробника — теж непогано, але його пишуть по-різному: «SM-A546E/DS», «SM A546E», «SMA546EDS». Найгірший, але найпоширеніший варіант — матчинг за назвою, бо в одного магазину товар називається «Samsung Galaxy A54 5G 8/256GB Black», а в іншого — «Смартфон Самсунг А54 256 Гб чорний». Автоматично зіставити ці рядки «в лоб» неможливо.

Тому реальний матчинг — це конвеєр: нормалізація тексту (регістр, транслітерація, одиниці виміру), витягування характеристик (обсяг пам'яті, колір, кількість у пачці), нечітке порівняння назв і перевірка бренду, а потім поріг упевненості. Усе, що вище порогу, зіставляється автоматично; усе, що нижче, потрапляє на ручну модерацію, і людина за пару секунд натискає «так» або «ні». Ці підтвердження обов'язково зберігайте, щоб система не питала про той самий товар удруге. Нормальний очікуваний результат на старті — 60–80% автоматичного покриття, решта добирається руками протягом кількох тижнів. І окрема пастка: пляшка 2 літри та упаковка 2×1 літр — це різні товари, і порівнювати їхні ціни як однакові не можна.

Частота автоматичного збору цін і куди складати дані

Для більшості інтернет-магазинів достатньо одного проходу на добу — вночі, коли на сайтах конкурентів найменше навантаження. Ціни в рітейлі рідко змінюються частіше, а щогодинний збір лише збільшує ризик блокування та рахунок за проксі. Годинна або навіть 15-хвилинна частота виправдана там, де ціна справді жива: маркетплейси з автоматичними репрайсерами, електроніка на старті продажів, квитки, паливо. Розумний компроміс — двошвидкісний графік: топ-200 позицій, які дають основну виручку, знімати щогодини, а решту каталогу — раз на добу. Це знижує вартість інфраструктури в рази без утрати сенсу.

Дані мають лягати в базу з історією, а не перезаписуватися. Одна ціна — це просто факт, а історія цін — це вже актив: видно сезонність, глибину акцій і реакцію конкурента на ваші кроки. Поверх бази ставлять дашборд: де ми дорожчі за ринок, де дешевші, які позиції випали з наявності у всіх, крім нас (тут можна спокійно підняти ціну). І обов'язково — алерти, бо в дашборд ніхто не заходить щодня. Повідомлення в Telegram на кшталт «Конкурент X знизив ціну на 12% на восьми позиціях вашого топ-асортименту» доходить до категорійного менеджера за секунду й перетворює звіт на дію. Без цього останнього кроку весь збір цін залишається красивою, але марною картинкою.

Технічні бар'єри парсингу сайтів і як їх обходять коректно

Простий сайт віддає ціну прямо в HTML — тоді достатньо звичайного HTTP-запиту, і збір коштує копійки. Проблеми починаються далі. Багато магазинів рендерять ціну через JavaScript, тож потрібен headless-браузер, а це в десятки разів дорожче за ресурсами. Далі — захист: капча, обмеження кількості запитів з однієї IP-адреси, блокування дата-центрових мереж, антибот-системи, які аналізують поведінку. Плюс сайти постійно змінюють верстку, і парсер, який учора працював, сьогодні тихо збирає порожні значення. Тому обов'язковий елемент системи — моніторинг самого парсера: якщо покриття впало з 95% до 40%, ви маєте дізнатися про це з алерта, а не з хибного звіту через місяць.

Коректний збір — це передусім помірність. Обмежуйте темп: один запит на кілька секунд, паралельність у розумних межах, робота вночі, повага до robots.txt і до ресурсів чужого сервера. Ротація проксі та реалістичні заголовки потрібні не для «злому», а щоб один робот не виглядав як DDoS з однієї адреси. Кешуйте те, що не змінюється, і не тягніть картинки — вам потрібна ціна, а не гігабайти графіки. Якщо конкурент має відкритий API, фід для маркетплейсів або публічний прайс у файлі — використовуйте саме їх: це швидше, дешевше й чесніше. Агресивний парсинг сайтів, який кладе чужий ресурс, — це вже не аналіз конкурентів, а шкода, і виправдання їй немає.

Законність моніторингу цін і головна помилка

Тут треба говорити чесно. Ціна товару у відкритому каталозі — це публічна інформація, і сам факт її збирання зазвичай не є чимось забороненим. Але є три межі, які варто тримати в голові. Перша — персональні дані: імена, телефони, відгуки з іменами користувачів. Це вже сфера захисту персональних даних і GDPR, і збирати їх «до купи», бо вони траплялися на сторінці, не можна. Друга — умови користування сайтом: багато ресурсів прямо забороняють автоматизований збір, і хоча це питання договірне, а не кримінальне, конфлікт і блокування цілком реальні. Третя — обхід технічного захисту та надмірне навантаження: зламувати капчі, підбирати доступи до закритих розділів чи створювати ризик для роботи чужого сервісу не можна за жодних умов. Практичне правило просте: беремо лише публічні знеособлені дані, у помірному темпі, для власного аналізу, і не використовуємо чужий контент, фото та описи як свої. Для великого проєкту юридичну оцінку варто отримати заздалегідь, а не після листа від конкурента.

І головна помилка, яку ми бачимо найчастіше: компанія витрачає бюджет на парсинг сайтів, накопичує гігабайти цін — і не змінює жодної ціни. Дані самі по собі не приносять грошей; гроші приносить правило, за яким хтось діє. Тому починайте з кінця: визначте 100–300 позицій, які дають більшість виручки, опишіть логіку рішення («якщо ми дорожчі за медіану ринку більш ніж на 5% — сигнал категорійнику»), і лише потім будуйте збір. Саме такі системи ми в Devlly і робимо: збір цін, матчинг товарів, історія в базі, дашборд і алерти в Telegram — щоб моніторинг цін закінчувався рішенням, а не ще одним звітом, який ніхто не відкриває.

Потрібна розробка для вашого бізнесу? Пишіть нам