Представьте: новостной сайт на Битрикс с 10 000 посетителей в сутки, но контент обновляется раз в неделю. Редакторы тратят 20 часов в неделю на копирование статей из 15 источников. В результате — падение позиций в выдаче на 30% за квартал. Мы внедряем парсинг RSS-лент, который автоматически собирает новости, фильтрует дубли и публикует их в инфоблоке. На одном из проектов это сократило временные затраты с 15 до 1 часа в неделю и увеличило индекс цитирования на 45%. Кроме того, такой подход полностью исключает человеческие ошибки при копировании и экономит до 40 000 руб. в месяц на зарплате редакторов.
Согласно спецификации RSS Board, стандарт RSS 2.0 поддерживает все необходимые поля для автоматической публикации.
Как выбрать источник данных для парсинга?
Новостные ленты доступны в нескольких форматах. Сравнение по ключевым параметрам:
| Источник | Надёжность | Сложность | Юридические риски |
|---|---|---|---|
| RSS/Atom-фиды | Высокая | Низкая | Минимальные |
| API агрегаторов | Высокая | Средняя | Средние (требуют лицензии) |
| HTML-страницы | Низкая | Высокая | Высокие |
RSS/Atom — оптимальный старт. Они стандартизированы, легко парсятся и не требуют специальных разрешений.
Как организовать процесс импорта?
Парсер новостей для Битрикс состоит из трёх слоёв.
Сборщик (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;
}
Обработчик (Processor). Очищает HTML-теги, скачивает изображения, нормализует даты, определяет категорию по ключевым словам.
Импортёр (Importer). Создаёт элементы в инфоблоке через CIBlockElement::Add(). Проверяет дубли по XML_ID (URL статьи или GUID).
Хранение и обработка контента
Рекомендуемый маппинг RSS→инфоблок:
| Поле 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 — обязательное поле. Используйте md5-хеш от URL статьи — это гарантирует уникальность.
Сырой HTML из RSS непригоден для публикации. Типовые проблемы:
- Внешние изображения — скачивайте в
/upload/при импорте. - Сторонние скрипты и iframe — используйте
strip_tags()с whitelist илиHTMLPurifier. - Относительные ссылки — преобразуйте в абсолютные, подставив домен источника.
- Кодировка — детектируйте через
mb_detect_encoding()и конвертируйте в UTF-8.
Почему cron, а не агенты?
Крон в 3 раза надёжнее стандартных агентов Битрикс для длительных задач — агенты обрываются при превышении времени выполнения, а крон выполняется до конца. Cron-задача вызывает PHP-скрипт:
$_SERVER['DOCUMENT_ROOT'] = '/home/bitrix/www';
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
CModule::IncludeModule('iblock');
Пример конфигурации cron для парсинга каждые 30 минут
*/30 * * * * /usr/bin/php /home/bitrix/www/parser.phpЧастота: срочные новости — каждые 15–30 минут, отраслевые — 1–2 часа, аналитика — 1–2 раза в сутки.
Как настроить парсер за 5 шагов?
- Выберите источники RSS/API.
- Напишите сборщик на SimplePie или cURL.
- Настройте обработчик: очистка HTML, скачивание картинок, маппинг категорий.
- Реализуйте импортёр с проверкой XML_ID.
- Настройте cron и систему логирования ошибок.
Контроль качества и категоризация
Помимо XML_ID, используйте:
- Фильтр по дате — не импортировать новости старше N дней.
- Минимальная длина описания — отбрасывать записи короче 100 символов.
- Стоп-слова — фильтровать нерелевантные тематике ключевые слова.
- Лимит на источник — не более N новостей в сутки с одного фида.
Простейший вариант категоризации — маппинг «источник → раздел инфоблока». Более гибкий — классификация по ключевым словам:
$rules = [
'Технологии' => ['AI', 'блокчейн', 'стартап', 'приложение'],
'Финансы' => ['акции', 'курс', 'инвестиции', 'IPO'],
];
Для 10+ категорий подключайте внешние классификаторы (OpenAI, Yandex GPT).
Юридическая сторона
Публикация чужих новостей «как есть» нарушает авторские права. Варианты:
- Публикация заголовка + 2–3 предложений со ссылкой (цитирование).
- Автоматический рерайт через LLM — юридически спорно.
- Использование фидов с открытой лицензией (Creative Commons, госисточники).
Что входит в работу
- Аудит текущего каталога — структура инфоблоков, проверка дублей.
- Разработка парсера — сборщик, обработчик, импортёр.
- Интеграция с cron — расписание, логирование.
- Дедупликация и фильтры.
- Документация и обучение редакторов.
- Поддержка 30 дней после релиза.
Опыт и экспертиза
Мы занимаемся разработкой на Битрикс более 7 лет, реализовали 200+ проектов автоматизации. Наши инженеры сертифицированы 1С-Битрикс. Используем CommerceML, REST API, Bizproc — полный стек. Свяжитесь с нами, чтобы обсудить архитектуру парсера для вашего сайта — мы подготовим предложение за 1-2 дня. Получите консультацию по автоматизации новостного раздела.







