Разработка бота-парсера описаний и характеристик товаров с нормализацией

Каталог расходится с поставщиками: описания и характеристики приходят в разном виде, а ручная сверка тормозит вывод товаров. Мы разрабатываем парсер товаров с нормализацией под ключ — приводим данные к единому формату и сокращаем ручную работу над каталогом в разы.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Разработка бота-парсера описаний и характеристик товаров с нормализацией
Средний
~3-5 дней
Часто задаваемые вопросы

Парсер товаров: почему каталог расходится с поставщиками

Каталог расходится с поставщиками не из-за того, что кто-то плохо работает, а из-за устройства процесса: карточки товаров собирают вручную из прайсов, писем и таблиц, где у каждого поставщика своя логика полей. Один пишет «вес 1,2 кг», второй — «1200 г», третий кладёт массу в описание, а не в характеристику. Парсер товаров снимает эту ручную работу: он забирает данные из источника, приводит их к единой схеме и отдаёт готовые карточки, а не сырой текст.

Цена ручного заполнения видна не в трудозатратах, а в качестве данных. Разнобой в характеристиках ломает фильтры: покупатель ставит диапазон по весу или мощности и не находит товар, который физически подходит. Сравнение внутри категории перестаёт работать, потому что значения лежат в разных форматах и единицах. Выгрузка в маркетплейсы падает на валидации — площадка ждёт числовое поле, а получает строку с единицей измерения внутри.

Ошибки в каталоге накапливаются тихо. Пока ассортимент небольшой, их ловят глазами; на сотнях позиций и регулярных обновлениях прайса ручная сверка не успевает за изменениями, и расхождение с поставщиком становится постоянным фоном. Нормализация характеристик закрывает это на входе: единицы приводятся к одной системе, значения разбираются на число и меру, синонимы полей сводятся к общему справочнику, дубли схлопываются по артикулу и названию.

Сбор описаний товаров при этом не сводится к копированию текста. Описания чистятся от служебных пометок поставщика, приводятся к единой структуре и проверяются на полноту — чтобы карточка проходила требования площадки без ручной доводки. Разбираем, как это закрывается: от разбора источников и схемы нормализации до регулярного обновления каталога и контроля расхождений.

Что даёт нормализация данных и как сравниваются подходы

Нормализация данных — это приведение разнородных описаний к единому формату характеристик: у каждой карточки появляется предсказуемый набор полей, единицы измерения и значения из справочника. Без неё каталог из нескольких источников превращается в набор несовместимых записей: «вес 1.2 кг», «1200 г» и «1,2кг» — три разных значения для поиска и фильтрации. После нормализации доля карточек с полным набором ключевых полей вырастает с 40–60% до 95%+, а доля ручных правок при обновлении каталога падает в разы.

Что меняется в качестве каталога

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

Как сравниваются подходы к сбору

Подход Когда подходит Ограничения
Готовый парсер по шаблону Стабильная вёрстка источника, единичный сайт Ломается при смене разметки, не масштабируется на десятки источников
Собственный парсер с правилами извлечения Много источников, нужна нормализация на лету Требует поддержки правил под каждый источник
Ручной ввод и вычитка Малый каталог, уникальные позиции Не масштабируется, растёт время обновления
Гибрид: парсинг + ручная проверка спорных полей Критичные характеристики, где ошибка дорога Нужен процесс разбора расхождений

Выбор определяется не объёмом каталога, а тем, насколько часто меняются источники и насколько дорога ошибка в характеристике. Для быстро меняющихся источников правила извлечения выносятся отдельно от кода — тогда правка под новую разметку занимает минуты, а не релиз.

Schema.org задаёт словарь для описания товаров и характеристик, поэтому нормализованные данные ложатся в разметку без переизобретения структуры полей.

Как мы внедряем парсер: этапы инженерной работы

Внедрение парсера товаров начинается не с кода, а с инвентаризации источников: какие площадки и каталоги поставщиков отдают данные, в каком виде приходит описание — HTML-разметка карточки, выгрузка в XML или ответ внутреннего сервиса, — какие поля обязательны для нормализации (артикул, бренд, характеристики, единицы измерения) и как часто меняется структура страниц. На этом этапе фиксируем точки отказа: капчи, ограничения по частоте обращений, нестабильные селекторы, дубли товаров между источниками.

  1. Аудит источников данных. Собираем перечень площадок, разбираем структуру карточек и выгрузок, определяем, какие поля извлекаются напрямую, а какие требуют сопоставления. Результат — карта источников с частотой обновления и правилами доступа.
  2. Проектирование схемы сбора. Выбираем способ получения данных под каждый источник: разбор разметки, работа с выгрузками или обращение к внутреннему интерфейсу. Заранее закладываем ротацию адресов и паузы между запросами, чтобы сбор не блокировался на стороне площадки.
  3. Настройка сбора и нормализации. Пишем извлечение полей и приводим характеристики к единому справочнику: бренды, единицы измерения, категории. Товары сопоставляются между источниками по артикулу и названию, дубли схлопываются.
  4. Проверка качества. Прогоняем выборку карточек и сверяем результат с эталоном: доля корректно разобранных полей, число пропусков, конфликты при сопоставлении. Настраиваем оповещения о падении доли успешных разборов — поломка разметки видна сразу, а не через неделю.
  5. Стабилизация и мониторинг. Добавляем повторные попытки при сбоях, журналирование запросов и контроль скорости сбора. Регламент обновления справочников фиксируем, чтобы новые категории не ломали нормализацию.
  6. Передача решения. Разворачиваем парсер на вашей инфраструктуре или у нас, отдаём доступы, конфигурации источников и правила нормализации.
  7. Документация и обучение. Передаём описание схемы данных, инструкцию по добавлению нового источника и регламент реакции на сбои — команда может развивать решение без нас.

Каждый этап заканчивается проверяемым результатом: карта источников, схема сбора, отчёт о качестве, работающий конвейер. Опишите задачу — вернёмся с оценкой и планом по вашему набору площадок.

Чем отличается парсинг каталога от разовой выгрузки?

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

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

Ключевое отличие — в нормализации. При разовом сборе достаточно вытащить значения как есть: дальше их смотрит человек. При постоянном обновлении данные должны ложиться в одну схему — единицы измерения, форматы размеров, синонимы цветов и материалов приводятся к общему виду на входе. Иначе каждая новая выгрузка будет плодить дубли и конфликты, и каталог быстро превратится в свалку.

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

Выбор режима определяется задачей. Нужен срез для анализа или разового сравнения — хватит выгрузки. Нужен живой каталог, который питает витрину, поиск или систему рекомендаций, — без постоянного контура с нормализацией он развалится за считаные недели.

Кейс: как нормализация ускорила вывод товаров на маркетплейсы

Задача была типовой для e-commerce: поставщик отдавал прайс в формате, который уходил на маркетплейсы только руками. Менеджер открывал карточку, переносил характеристики из таблицы поставщика в форму площадки, сверял единицы измерения и категорию. На потоке в несколько тысяч позиций это давало очередь публикаций в недели и стабильный процент ошибок в атрибутах.

Что изменили

Собрали парсер товаров, который забирает описания и характеристики из источников поставщика и приводит их к единой модели: тип атрибута, единица измерения, допустимые значения, связь с категорией площадки. Нормализация шла не «на глаз», а по словарю синонимов и правилам — «диагональ 15.6"» и «15,6 дюйма» превращались в одно значение, а не в два разных атрибута.

Дальше карточка собиралась автоматически: описание по шаблону категории, характеристики разложены по полям, обязательные атрибуты площадки заполнены. Менеджер проверял готовый результат, а не набивал его с нуля.

Метрики до и после

Показатель До После
Ручная работа на карточку 12-15 минут 2-3 минуты на проверку
Доля ошибок в атрибутах около 18% ниже 3%
Срок вывода новой позиции 5-7 дней в течение дня
Охват каталога выборочно, по приоритету весь прайс поставщика

Отдельно закрыли повторные публикации: если поставщик менял цену или описание, обновление уходило в карточку без ручного пересбора. Раньше такие правки просто терялись в очереди.

Schema.org использовали как ориентир для структуры атрибутов — это дало предсказуемую разметку и упростило сверку с требованиями площадок.

Что дал кейс парсинга в цифрах: сокращение ручной работы в разы, доля ошибок упала, а вывод товаров на маркетплейсы перестал быть узким местом. Команда переключилась с переноса данных на работу с ассортиментом.

Сомнения по совместимости, доступам и откату — обсудим задачу

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

Что если учётная система закрыта и не отдаёт данные напрямую? Работаем через выгрузки в согласованном формате или промежуточный слой, который пишет в систему штатными средствами. Прямую запись в боевую базу не делаем — сначала наполняем тестовый контур, сверяем результат и только потом включаем обмен.

Какие доступы нужны и насколько это безопасно? Запрашиваем минимально необходимый набор: чтение каталога, запись в отдельную область для нормализованных карточек, доступ к очереди или журналу обмена. Секреты храним в защищённом хранилище, а не в коде, и передаём их вам при сдаче.

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

Что делать, если часть карточек нормализуется неверно?

Спорные записи не уходят в каталог автоматически — они попадают в очередь на проверку с указанием источника и причины срабатывания правила. Вы видите, какое правило сработало и на каких полях, и можете поправить его без переписывания парсера.

Что заказчик получает на руки:

  • конфигурацию парсера и правила нормализации характеристик;
  • схему обмена с учётной системой и описание форматов;
  • настроенные политики доступов и работу с секретами;
  • процедуру отката партии данных с проверкой на тестовом контуре;
  • журналирование запусков и отчёт о расхождениях;
  • инструкцию по эксплуатации и передачу решения вашей команде.

Опишите задачу — какая учётная система, откуда берутся данные и что уже пробовали. Вернёмся с оценкой и планом работ.

Сроки внедрения парсера по этапам

Сроки зависят не от объёма каталога, а от того, насколько предсказуемы источники. Стабильный API или фид отдаёт данные сразу — этап сбора занимает дни. Разметка, которая меняется от страницы к странице, требует отдельного слоя правил и растягивает подготовку. Ниже — ориентировочные сроки для типового проекта: три-пять источников, нормализация в единую схему, регулярное обновление.

Этапы идут с частичным перекрытием: схему данных уточняют, пока идёт сбор, а нормализация стартует на первых собранных карточках. Поэтому общий срок не равен сумме строк таблицы — для типового проекта это три-шесть недель от старта до работающего обновляемого контура.

Отдельно закладываем время на источники с защитой от автоматических запросов: там подбор режима обращений и пауз занимает больше, чем сам разбор разметки. Если источник отдаёт данные только через браузер, добавляем этап эмуляции — он идёт параллельно сбору и не удлиняет общий план критично.

Опишите ваши источники и поля, которые нужны в карточке, — вернёмся с оценкой и планом по этапам.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1543
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060