Парсинг описаний товаров для наполнения 1С-Битрикс
Пустые или скопированные описания — это нулевой SEO-вес и плохая конверсия. Но писать тексты вручную для 5000 товаров нереально. Парсинг описаний с сайтов производителей или дистрибьюторов — рабочий способ быстро наполнить каталог, если грамотно организовать процесс и не допустить дублирования контента.
Источники описаний
Выбор источника определяет качество и правовые риски:
Сайт производителя — максимально релевантный контент, но часто защищён от парсинга и может содержать copyright. Использовать как основу для рерайта, не как финальный текст.
Агрегаторы (Яндекс.Маркет, OZON, Wildberries) — большой объём описаний, стандартизированный формат. Те же правовые оговорки.
Официальные дистрибьюторы — более лояльны к использованию контента, часто сами заинтересованы в распространении.
Базы данных производителей (Icecat, Synccentric) — легальный вариант с API, платный, но даёт чистые данные с лицензией.
Извлечение и очистка текста
Описание на сайте-источнике обычно лежит в <div class="description"> или аналогичном контейнере. Извлекаем через DomCrawler:
$description = $crawler->filter('.product-description')->text();
После извлечения — обязательная очистка:
- strip_tags() для удаления HTML (или фильтрация разрешённых тегов)
- Удаление рекламных вставок типа «Купить в нашем магазине»
- Нормализация пробелов и переносов строк
- Удаление упоминаний бренда-конкурента
Если нужно сохранить HTML-форматирование (жирный, списки), используем Symfony\Component\DomCrawler\Crawler::html() и фильтруем через HTMLPurifier.
Запись в поля Битрикса
Битрикс разделяет описание на два поля:
-
PREVIEW_TEXT— краткое описание (для листинга) -
DETAIL_TEXT— полное описание (для карточки товара)
При парсинге длинного описания: первый абзац → PREVIEW_TEXT, полный текст → DETAIL_TEXT. Тип текста задаётся полями PREVIEW_TEXT_TYPE и DETAIL_TEXT_TYPE (значения: text или html).
Обновление элемента:
$el = new CIBlockElement();
$el->Update($elementId, [
'PREVIEW_TEXT' => $shortDesc,
'PREVIEW_TEXT_TYPE' => 'html',
'DETAIL_TEXT' => $fullDesc,
'DETAIL_TEXT_TYPE' => 'html',
]);
Работа с уже заполненными карточками
Не перезаписывать вслепую — менеджеры могут вручную улучшать описания. Добавляем логику:
- Если
DETAIL_TEXTпустой — записываем парсинговый текст - Если заполнен — устанавливаем свойство
DESCRIPTION_SOURCE = parsedтолько при первоначальном заполнении - При обновлении парсера — пропускаем элементы без флага
DESCRIPTION_SOURCE(значит, текст правили вручную)
Таймлайн работ
| Этап | Срок |
|---|---|
| Анализ источников, выбор структуры извлечения | 2–4 часа |
| Разработка парсера описаний | 1–2 дня |
| Логика очистки и нормализации текста | 4–8 часов |
| Интеграция с инфоблоком, защита ручных правок | 4–6 часов |
| Тестирование на 100–200 позициях | 4 часа |
Итого: 4–6 рабочих дней. Если нужен рерайт через AI после парсинга — добавьте ещё 1–2 дня на интеграцию с GPT API.







