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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Парсинг новостных лент для автонаполнения 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Парсинг новостных лент для автонаполнения 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, государственные источники).