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 - щоб моніторинг цін закінчувався рішенням, а не ще одним звітом, який ніхто не відкриває.

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