Парсинг цен с сайтов конкурентов для 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Парсинг цен с сайтов конкурентов для 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1240
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    844
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    582
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    749
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    981

Парсинг цен с сайтов конкурентов для 1С-Битрикс

Ценовой мониторинг конкурентов — одна из немногих автоматизаций, которая даёт прямой измеримый эффект на маржинальность. Без него менеджеры либо не реагируют на изменения, либо тратят часы на ручной сбор данных. Правильно настроенный парсер цен закрывает эту задачу с точностью до нескольких часов.

Чем парсинг цен отличается от парсинга каталога

Ключевое отличие — частота и объём. Каталог парсится редко (раз в неделю или при запуске). Цены нужно собирать каждые 2–6 часов на живой системе с тысячами позиций. Это означает:

  • Нет времени на headless-браузер для каждого товара — нужны быстрые HTTP-запросы
  • Идентификация товара критична — один и тот же товар на разных сайтах имеет разные URL
  • Хранение истории цен обязательно — тренд важнее текущего значения

Идентификация товаров конкурентов

Самая сложная техническая задача — связать свой SKU с карточкой конкурента. Три подхода:

По артикулу/EAN: надёжнее всего. Ищем артикул производителя в тексте страницы конкурента. Работает, когда оба продают одни и те же branded-товары.

По названию: fuzzy-matching через similar_text() или Levenshtein. Требует ручной верификации первого запуска — много ложных совпадений.

По URL из внешних баз: прайс-агрегаторы (Яндекс.Маркет, Price.ru) часто дают прямые ссылки на конкурентов с привязкой к модели. Парсим агрегатор как посредника.

Результат маппинга хранится в Highload-блоке CompetitorLinks:

UF_OWN_PRODUCT_ID → ID нашего элемента инфоблока
UF_COMPETITOR_URL → URL карточки конкурента
UF_COMPETITOR_NAME → идентификатор конкурента
UF_LAST_PRICE → последняя собранная цена
UF_LAST_CHECK → дата последней проверки

Хранение истории и аналитика

Текущую цену в Highload-блоке хранить можно, но историю — только в отдельной таблице. Создаём кастомную таблицу competitor_price_history:

CREATE TABLE competitor_price_history (
    id SERIAL PRIMARY KEY,
    own_product_id INT NOT NULL,
    competitor_name VARCHAR(100),
    price DECIMAL(12,2),
    currency CHAR(3),
    in_stock BOOLEAN,
    parsed_at TIMESTAMP DEFAULT NOW()
);
CREATE INDEX idx_cph_product ON competitor_price_history(own_product_id, parsed_at DESC);

Это позволяет строить графики динамики цен и находить паттерны (например, конкурент снижает цены каждую пятницу).

Автоматическое реагирование на изменения

После сбора данных — бизнес-логика. Варианты реакции:

Уведомление менеджера — через \Bitrix\Main\Mail\Event::send() при отклонении цены конкурента от нашей более чем на X%.

Автоматическое изменение цены — через CCatalogProduct::Update() с новым значением в b_catalog_price. Требует согласования правил с бизнесом (минимальная маржа, запрет опускаться ниже себестоимости).

Флаг для переоценки — добавляем свойство NEEDS_REPRICING = Y к элементу инфоблока, менеджер видит список в административной части.

Кейс: мониторинг 5 конкурентов в нише автозапчастей

Задача: 4200 SKU, 5 конкурентов, обновление каждые 4 часа, автоматическое уведомление при разнице > 7%.

Проблемы при реализации:

  • Два конкурента использовали Cloudflare — пришлось добавить ротацию прокси и случайные задержки
  • Один сайт рендерил цены через JS — для него отдельный воркер на Puppeteer с пулом в 3 инстанса
  • Артикулы у одного конкурента хранились в нестандартном атрибуте data-sku

Итог: система собирает ~21 000 ценовых точек за цикл (4200 × 5), укладываясь в окно 4 часов. Менеджер получает дайджест отклонений утром и вечером.

Таймлайн работ

Этап Срок
Анализ сайтов конкурентов, выбор метода идентификации 4–8 часов
Разработка парсера цен (1 конкурент) 1–2 дня
Маппинг SKU между своим каталогом и конкурентами 1–2 дня
Хранение истории, аналитические запросы 1 день
Настройка уведомлений / авторепрайсинга 4–8 часов
Тестирование, отладка прокси и задержек 1 день

Итого для 5 конкурентов: 6–10 рабочих дней.