Парсинг стрічок для автонаповнення 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Парсинг стрічок для автонаповнення 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

Парсинг новинних лент для автонаповнення 1С-Бітрікс

Розділ новин на сайті 1С-Бітрікс, який оновлюється раз на місяць, гірше, ніж його відсутність. Пошукові системи бачать заброшений ресурс, користувачі втрачають довіру. Автонаповнення через парсинг новинних лент вирішує задачу регулярного оновлення контенту, але вимагає грамотної реалізації — інакше отримаєте дублі, битку вёрстку та проблеми з унікальністю.

Джерела даних

Новинні ленти доступні в кількох форматах:

  • RSS/Atom-фіди — стандартизований XML з заголовком, описом, посиланням, датою. Підтримуються більшістю ЗМІ та блогів. Найнадійніший джерело.
  • API новинних агрегаторів — NewsAPI, Mediastack, Currents API. Структурований JSON, платні тарифи для комерційного використання.
  • HTML-сторінки — парсинг безпосередньо сайтів-джерел. Ненадійно: вёрстка міняється, защита від ботів, юридичні ризики.

Для автонаповнення сайтів Бітрікс RSS-фіди — оптимальне відношення надійності та простоти. Починати варто саме з них.

Архітектура парсера RSS

Парсер новин для Бітрікс складається з трьох шарів:

1. Сборщик (Fetcher). Забирає RSS-фіди за списком URL. Використовує file_get_contents з контекстом або cURL з таймаутами. Кожен фід парсится через SimpleXMLElement або бібліотеку SimplePie.

$xml = simplexml_load_string($rssContent);
foreach ($xml->channel->item as $item) {
    $title = (string)$item->title;
    $link  = (string)$item->link;
    $date  = strtotime((string)$item->pubDate);
    $desc  = (string)$item->description;
}

2. Обработчик (Processor). Очищає HTML-теги з описів, завантажує та зберігає зображення, нормалізує дати, визначає категорію за ключовими словами або джерелом.

3. Імпортер (Importer). Створює елементи в інфоблоці Бітрікс через CIBlockElement::Add(). Перевіряє дублі за XML_ID (зазвичай — URL статті або GUID з фіду).

Зберігання в інфоблоці

Новини в Бітрікс зберігаються в інфоблоці стандартної структури. Рекомендуване зіставлення:

Поле RSS Поле інфоблоку Тип
title NAME Рядок
link PROPERTY_SOURCE_URL Посилання
description PREVIEW_TEXT HTML/текст
content:encoded DETAIL_TEXT HTML
pubDate ACTIVE_FROM Дата
guid / link XML_ID Рядок (для дедупліації)
category IBLOCK_SECTION_ID Прив'язка до розділу
enclosure / media:content PREVIEW_PICTURE Файл

XML_ID — обов'язкове поле. Без нього при кожному запуску парсера створюються дублі. Як XML_ID використовуйте md5-хеш від URL статті — це гарантує унікальність навіть при зміні GUID у фіді.

Обробка контенту

Сирий HTML з RSS непридатний для публікації. Типові проблеми:

  • Зовнішні зображення — посилання на картинки ведуть на сайт-джерело. При його недоступності картинки пропадають. Рішення: завантажувати зображення в /upload/ при імпорті.
  • Сторонні скрипти та iframe — фіди можуть містити віджети, лічильники, вбудовані відео. Використовуйте strip_tags() з whitelist дозволених тегів або бібліотеку HTMLPurifier.
  • Відносні посилання — посилання виду /article/123 без домена. Перетворіть в абсолютні, підставивши домен джерела.
  • Кодування — фіди можуть приходити в UTF-8, Windows-1251, ISO-8859-1. Детектуйте кодування через mb_detect_encoding() та конвертуйте в UTF-8.

Розписання та cron

Парсер запускається через cron. Частота залежить від типу новин:

  • Срочні новини (інформагентства) — кожні 15–30 хвилин.
  • Галузеві новини — кожні 1–2 години.
  • Блоги та аналітика — 1–2 рази на добу.

Cron-завдання викликає PHP-скрипт, який підключає ядро Бітрікс:

$_SERVER['DOCUMENT_ROOT'] = '/home/bitrix/www';
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
CModule::IncludeModule('iblock');

Альтернативний варіант — агент Бітрікс (b_agent), але для довготривалих операцій cron надійніший: агенти мають ліміт за часом виконання та блокують один одного.

Дедупліція та контроль якості

Крім перевірки за XML_ID, рекомендується:

  • Фільтр за датою — не імпортувати новини старше N днів. Інакше при першому підключенні нового фіду каталог заповниться застарілим контентом.
  • Мінімальна довжина — відкидати записи з описом коротше 100 символів. Це відсікає технічні записи та анонси без змісту.
  • Стоп-слова — фільтрувати новини за ключовими словами, нерелевантними тематиці сайту.
  • Ліміт на джерело — не більше N новин на добу з одного фіду, щоб один активний джерело не витіснив решту.

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

Простіший варіант — зіставлення «джерело → розділ інфоблоку». Всі новини з фіду TechCrunch йдуть у розділ «Технологія», з RBK — в «Економіку».

Більш гнучкий підхід — класифікація за ключовими словами в заголовку та тексті. Масив правил виду:

$rules = [
    'Технологія' => ['AI', 'блокчейн', 'стартап', 'додаток'],
    'Фінанси'    => ['акції', 'курс', 'інвестиції', 'IPO'],
];

Для 10+ категорій та серйозних вимог до точності — підключайте зовнішній класифікатор (OpenAI API, Yandex GPT) або навчену модель.

Юридична сторона

Публікація чужих новин «як є» нарушает авторські права. Допустимі варіанти:

  • Публікація заголовка + перших 2–3 речень зі посиланням на джерело (добросовісне цитування).
  • Автоматичний рерайт через LLM (GPT, YandexGPT) — юридично спорно, але на практиці застосовується.
  • Використання фідів з відкритою ліцензією (Creative Commons, державні джерела).