Автонаповнення розділу новин з 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
    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 дні.