Автонаполнение новостного раздела из RSS-лент 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Автонаполнение новостного раздела из RSS-лент 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы

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

Этапы разработки

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

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    989

Автонаполнение новостного раздела из RSS-лент 1С-Битрикс

Новостной раздел без регулярных публикаций теряет позиции в поиске и аудиторию. RSS-агрегация — быстрый способ организовать поток публикаций из профильных источников: отраслевые СМИ, пресс-релизы партнёров, новости производителей. Технически задача несложная, но требует правильной архитектуры для обеспечения уникальности контента и корректной атрибуции.

Получение и парсинг RSS

RSS — XML-формат со стандартной структурой. Каждая запись (<item>) содержит title, link, description, pubDate, author. Атомы (<entry>) используют другие теги, но логика та же.

Парсинг через SimpleXML:

$rss = simplexml_load_file($feedUrl);
foreach ($rss->channel->item as $item) {
    $this->processItem([
        'title'   => (string)$item->title,
        'link'    => (string)$item->link,
        'content' => (string)$item->children('content', true)->encoded ?: (string)$item->description,
        'pubDate' => strtotime((string)$item->pubDate),
        'guid'    => (string)$item->guid,
    ]);
}

<content:encoded> содержит полный текст статьи (если источник предоставляет), <description> — обычно анонс.

Дедупликация записей

Один и тот же материал может появиться в нескольких лентах или быть опубликован повторно. Дедупликация по guid (уникальный идентификатор записи в RSS):

$existing = CIBlockElement::GetList([], [
    'IBLOCK_ID' => NEWS_IBLOCK_ID,
    '=PROPERTY_RSS_GUID' => $item['guid']
])->Fetch();
if ($existing) continue; // уже импортировано

Свойство RSS_GUID типа S с IS_REQUIRED = N. Альтернатива для ускорения — хранить обработанные GUID в отдельной таблице или Redis Set.

Хранение в инфоблоке новостей

Стандартный инфоблок новостей с дополнительными свойствами под RSS-агрегацию:

  • RSS_GUID — GUID записи для дедупликации
  • RSS_SOURCE — ID или название источника (для атрибуции)
  • ORIGINAL_URL — ссылка на оригинал (для canonical и ссылки «источник»)
  • AUTO_IMPORTED — флаг автоимпорта (Y/N), чтобы отличать от ручных публикаций

Дата публикации из RSS → ACTIVE_FROM элемента. Это важно для корректной сортировки новостей.

Обработка контента: очистка и рерайт

Прямая публикация RSS-контента без обработки — дублирование, которое санкции от поисковиков. Варианты обработки:

Минимум: публикуем анонс (description) со ссылкой «читать далее» на оригинал. Это законная агрегация — не дублирование.

Средний уровень: очищаем HTML (HTMLPurifier), убираем ссылки на источник внутри текста, перефразируем вступление и заголовок.

Полный рерайт через AI: отправляем content:encoded в GPT с инструкцией переписать в другом стиле. Дорого для высокочастотных лент, оправдано для важных материалов.

Настройка нескольких лент

Конфигурация источников в Highload-блоке RssSources:

  • UF_URL — URL ленты
  • UF_NAME — название источника
  • UF_IBLOCK_ID — в какой инфоблок импортировать
  • UF_SECTION_ID — раздел для импортируемых материалов
  • UF_ACTIVE — включена/выключена
  • UF_INTERVAL — интервал проверки в минутах
  • UF_LAST_CHECK — время последней проверки
  • UF_PROCESSING — тип обработки (excerpt / full / ai_rewrite)

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

Этап Срок
Разработка RSS-ридера с поддержкой RSS 2.0 и Atom 4–8 часов
Дедупликация, хранение в инфоблоке 4–8 часов
Обработка контента (очистка HTML) 4 часа
Административный интерфейс для управления источниками 4–8 часов
Расписание, мониторинг 2–4 часа

Итого: 3–5 рабочих дней. Добавление AI-рерайта — плюс 1–2 дня.