DLE Parser PRO — это комплексное решение для DataLife Engine, предназначенное для автоматического импорта, обработки, перевода и публикации материалов из внешних источников. Модуль объединяет HTML-парсинг, RSS/Atom-ленты, гибридный режим RSS + HTML, импорт через Sitemap, обработку изображений, дополнительные поля DLE, защиту от дублей, AI-рерайтинг и интеграцию с DLE Multi-Language.
Система рассчитана на владельцев новостных сайтов, тематических порталов, блогов, агрегаторов и контентных проектов, которым важно не просто скопировать материал, а получить готовую публикацию: с очищенным HTML, локальными изображениями, категориями, тегами, дополнительными полями, ЧПУ, переводами и диагностикой каждого этапа обработки.
Главное
- Четыре режима: HTML-страницы, RSS/Atom, гибрид RSS + HTML и Sitemap — подключается почти любой сайт
- Селекторы — не проблема: их подбирает AI, а если селектор не сработал, модуль сам находит статью на странице — без меню, комментариев и рекламы
- ИИ на выбор: DeepSeek, OpenAI, Claude, Gemini, OpenRouter и любой сервис с API как у OpenAI — рерайт, перевод, теги и мета-описание
- Актуальные модели сами: список моделей загружается от провайдера с ценами, как только указан ключ
- Готовая новость: картинки на вашем сервере, категории, теги, ЧПУ, дополнительные поля и SEO — как при добавлении через админку DLE
- Под контролем: фильтры, замены, лимиты по источнику, защита от дублей и тест с предпросмотром до публикации
- Связка с Rewrite & Quality PRO: новости можно отдавать на рерайт с навыками и проверкой качества, публикация после рерайта
- Ссылка на источник: адрес статьи-донора сохраняется в доп. поле, вывести его под новостью — одна строка в шаблоне
Архитектура модуля: четыре режима парсинга
HTML Parser — классический веб-скрейпинг
- Извлечение материалов напрямую из HTML-структуры сайта-донора
- Корректная обработка списков материалов: парсер проходит по всем найденным контейнерам и ищет ссылку внутри каждого блока
- URL-based progress: отслеживание последнего обработанного материала по URL, а не по порядковому номеру на странице
- Поддержка направления обработки: от новых к старым и от старых к новым
- Настраиваемая пагинация:
/page/{page}/, ?page={page}, /p/{page}, /offset/{page} и кастомные паттерны
- Извлечение заголовка, полного текста, категорий, главного изображения и дополнительных полей через CSS-селекторы
- Локальная очистка контента внутри выбранного блока, без удаления элементов из всего DOM документа
- Автоматическое скачивание изображений из текста материала и замена внешних ссылок на локальные
- Поддержка дополнительных полей DLE: файлы, изображения, видео, галереи, HTML-блоки и текстовые значения
RSS/Atom Parser — работа с новостными лентами
- Поддержка RSS 2.0, RSS 1.0 (RDF) и Atom 1.0
- Извлечение контента из
content:encoded, description и Atom content
- Обработка namespaces: media, content, dc, atom
- Получение изображений из enclosure, media:content, media:thumbnail, media:group и HTML-контента
- Дополнительный поиск главного изображения на странице статьи через Open Graph и Twitter meta-теги
- Извлечение категорий из ленты и маппинг на категории DLE
- Раздельная стратегия cursor для режимов new_to_old и old_to_new, чтобы новые материалы в верхней части RSS не пропускались
- Очистка RSS-контента от рекламных и служебных блоков через селекторы исключения
Hybrid Parser — сочетание RSS и HTML
- RSS используется для быстрого получения списка актуальных материалов
- HTML-страница используется для извлечения полного текста, изображений, категорий и дополнительных полей
- Поддержка HTML category selector с политикой объединения категорий: RSS first, HTML fallback или HTML priority
- Защита от зависания на проблемном материале: item-level failure tracking, fail cursor advancement и лимит повторных попыток
- Объединение данных из RSS и HTML с приоритетом более полного источника
- Поддержка скачивания медиа и дополнительных полей из HTML-версии статьи
- Оптимальный режим для сайтов, где RSS содержит только анонс, а полный материал доступен на странице
Sitemap Parser — импорт материалов из sitemap.xml
- Поддержка обычных sitemap.xml и sitemap index с вложенными sitemap-файлами
- Автоматическое получение списка URL материалов из Sitemap
- Кэширование sitemap-инвентаря для ускорения повторных запусков и снижения нагрузки на сайт-донор
- Поддержка направления обработки: от новых к старым и от старых к новым
- Извлечение заголовка, полного текста, категорий, изображений и дополнительных полей через CSS-селекторы
- Отслеживание общего количества URL и прогресса обработки
- Защита от повторной публикации уже импортированных материалов
AI-рерайтинг, переводы и DLE Multi-Language
AI-обработка: шесть вариантов провайдера
- DeepSeek, OpenAI, Anthropic Claude, Google Gemini, OpenRouter и любой сервис с API как у OpenAI: Groq, Mistral, xAI, Together, Fireworks, Moonshot, Z.ai, Qwen, YandexGPT, а также локальные Ollama и LM Studio
- Актуальные модели загружаются от провайдера автоматически, как только указан ключ: обычный список с поиском и ценой за 1 млн токенов; нужную модель можно ввести и вручную
- Кнопка «Проверить связь» — короткий запрос к модели с расходом токенов и ценой
- Язык результата: заголовок, текст, описание и теги пишутся на выбранном языке — удобно для перевода иностранных источников
- Мета-описание новости через ИИ (140–160 символов) и автозаполнение мета-тегов
- Месячный лимит расходов с предупреждением или остановкой ИИ-обработки; расходы по моделям видны на вкладке «Статистика»
- Повторные попытки при перегрузке сервиса и автоматическая подстройка параметров под модели, которые не принимают устаревшие настройки
- Рерайт заголовка, краткого описания и полного текста материала
- Chunk-based обработка длинных статей с разбиением на безопасные фрагменты
- Сохранение HTML-структуры при рерайте и переводе: параграфы, списки, заголовки, blockquote, code/pre
- Защита медиа-элементов перед AI-обработкой: изображения, figure, picture, iframe, video и pre/code блоки временно заменяются маркерами
- Автоматическое восстановление медиа-элементов после AI-обработки
- Настраиваемые промпты для заголовка, краткого описания, полного текста и тегов
- Повторная обработка подозрительных фрагментов, если AI оставил часть текста на исходном языке
- Дополнительная нормализация HTML после AI-ответа для предотвращения сломанных списков и незакрытых тегов
Интеграция с DLE Multi-Language
- Автоматическое определение активных языков из конфигурации DLE Multi-Language
- Заполнение языковых полей: заголовок, краткое и полное описание, теги, адрес новости (ЧПУ), мета-описание и ключевые слова для каждого языка
- Если перевод на язык не удался, эта языковая версия не сохраняется — текст на исходном языке в чужое поле не попадает
- Перевод полного материала, краткого описания, заголовка и тегов для каждого активного языка
- Сохранение основной языковой версии отдельно от переводов
- Проверка наличия языковых колонок перед сохранением, чтобы избежать ошибок БД
- Fallback для тегов: если AI не смог перевести tags, модуль формирует теги из уже переведённого контента
- Поддержка разных языковых сценариев: основной язык сайта может отличаться от языка сайта-донора
Фильтры, замены и публикация по источнику
- Обязательные слова и стоп-слова, минимальная длина текста, максимальный возраст материала — проверяются до ИИ, чтобы не тратить токены
- Замены в тексте по правилам, в том числе регулярными выражениями
- Для каждого источника: публиковать сразу или на модерацию, автор новостей, вывод на главную, разрешение комментариев и лимит новостей в сутки
- Экспорт и импорт источников в файл — перенос настроек между сайтами за минуту
Тестирование и предпросмотр перед публикацией
Real dry-run pipeline
- Тестирование источника использует тот же pipeline, что и реальный парсинг
- Dry-run режим не сохраняет материал в БД, но показывает итоговый результат обработки
- Предпросмотр включает финальный заголовок, краткое описание, полный текст, категории, изображения, xfields, tags и duplicate verdict
- Тест помогает увидеть реальный результат после очистки, AI-рерайта, перевода, скачивания изображений и обработки дополнительных полей
- В интерфейсе добавлено предупреждение: полная симуляция может занимать несколько минут и использовать AI/API-запросы
- Результат тестирования максимально соответствует тому, что будет опубликовано при реальном запуске CRON
CSS-селекторы и извлечение данных
Расширенный selector engine
- Поддержка базовых CSS-селекторов: теги, классы, ID, атрибуты
- Поддержка групп через запятую:
h1, .title, [itemprop="headline"]
- Поддержка вложенности, прямых потомков и соседних элементов:
.article .text, .post > p, h1 + .lead
- Поддержка нескольких классов на одном элементе:
.post.featured
- Поддержка атрибутов:
[href], [data-src], [itemprop="articleBody"], [class*="content"]
- Поддержка ряда псевдоклассов:
:first-child, :last-child, :nth-child(), :contains(), :not(), :is(), :where(), :has() в поддерживаемых пределах
- Предупреждения в тестовом режиме для слишком сложных или неподдерживаемых селекторов
- Подробная справка в админ-панели с примерами и объяснением поддерживаемого синтаксиса
Дополнительные поля DLE
Скачивание файлов, медиа и галерей
- Настройка произвольного количества дополнительных полей для каждого источника
- Для каждого поля задаётся CSS-селектор, атрибут извлечения и тип действия
- Поддерживаемые атрибуты:
href, src, data-src, data-href, content, text, html
- Поддерживаемые действия: сохранить URL/текст, скачать файл, скачать изображение, скачать видео, сохранить внешнее видео, собрать галерею
- Галереи автоматически обходят все найденные элементы и сохраняют результат в формате DLE
- Файлы и видео сохраняются в
uploads/public_files/
- Изображения сохраняются в
uploads/posts/ с метаданными размера
- HTML-блоки могут сохраняться в дополнительные поля с применением политики очистки контента
Изображения и медиа
Профессиональная обработка изображений
- Автоматическое скачивание изображений из полного текста материала
- Поддержка HTTPS, редиректов и относительных URL
- Сохранение изображений с организацией по датам
- Замена внешних URL в контенте на локальные копии
- Поддержка JPEG, PNG, GIF, WebP и AVIF
- Опциональная конвертация в WebP или AVIF
- Минимальная ширина картинки — иконки и счётчики не попадают в новость
- Водяной знак из вашего шаблона DLE
- Пропорциональное уменьшение по максимальной ширине и высоте
- Корректное сохранение оригинального формата, если конвертация отключена
- Resize с сохранением пропорций через GD или Imagick
- Извлечение изображений из
figure, picture, img, srcset, lazy-load атрибутов и meta-тегов
Категории и теги
Интеллектуальное управление категориями
- Извлечение категорий из RSS, HTML и Sitemap-страниц
- Визуальный маппинг категорий сайта-донора на категории DLE
- Поддержка категории по умолчанию для немаппированных материалов
- Поддержка множественных категорий для одного материала
- Для Hybrid-режима доступна политика объединения категорий из RSS и HTML
Генерация и перевод тегов
- Автоматическая генерация тегов через AI
- Fallback-генерация тегов из категорий, заголовка и текста, если AI не вернул корректный результат
- Перевод тегов для DLE Multi-Language
- Fallback для
tags_{iso} из переведённого контента, если AI-перевод тегов недоступен
- Нормализация списка тегов: удаление мусора, дублей и слишком длинных фраз
Защита от дублей и надёжный прогресс
Система предотвращения дубликатов
- Нормализация URL перед проверкой дублей
- Проверка по source_url, GUID, заголовку и fingerprint контента
- Корректная обработка duplicate skip без ложной ошибки сохранения
- Очистка dedupe-прогресса при полном сбросе источника
- Защита от повторной публикации после изменения URL-параметров, trailing slash или tracking-параметров
Progress и cursor model
- HTML-источники используют URL cursor вместо счётчика позиции на странице
- RSS и Sitemap используют отдельные стратегии для new_to_old и old_to_new
- Hybrid-режим продвигает cursor даже при контролируемых ошибках, чтобы источник не зависал на одном материале
- Сброс прогресса очищает связанные dedupe-записи источника
Structured logs, статистика и мониторинг
Структурированные логи
- Каждый этап парсинга записывается как structured event
- Лог содержит
source_id, source_type, source_name, item_url, stage, status, message, duration_ms и дополнительный контекст
- Отдельно логируются этапы fetch, parse, download_images, ai_rewrite, translate, generate_tags, translate_tags, db_save и duplicate check
- Логи помогают быстро понять, где именно тратится время или возникает ошибка
Health monitoring источников
- Отслеживание последнего успешного запуска
- Fail streak для понимания количества последовательных ошибок
- Duplicate rate для оценки качества источника
- Average fetch time и average run time
- Более точная статистика обработанных материалов по каждому source
Cloudflare, Proxy и сетевой слой
Двухуровневая система обхода защиты
- Enhanced cURL с имитацией браузерных заголовков
- Поддержка cookie persistence между запросами
- Интеграция с FlareSolverr для обхода Cloudflare и JavaScript challenges
- Опциональная поддержка HTTP/SOCKS5 proxy
- Автоматическое переключение на FlareSolverr при обнаружении защитной страницы
- Graceful fallback на обычный cURL, если обход защиты не требуется
Административная панель
Управление источниками и настройками
- Добавление и редактирование HTML, RSS/Atom, Hybrid и Sitemap источников
- Включение и отключение источников
- Сброс прогресса и повторная обработка
- Интерфейс на русском, английском, украинском и испанском языках, в стиле админки DLE и без горизонтальной прокрутки на любом экране
- Понятные подсказки при проблемах: если сайт строит страницы скриптами или закрыт от роботов, модуль прямо советует подключить его RSS или sitemap
- Подробная документация на doc.dlemod.com
- Предупреждения о лимитах сервера при запуске полной симуляции парсинга
- Встроенный preview итогового материала перед публикацией
- Поддержка старых и новых AJAX endpoints DLE
Безопасность
- Очистка материалов доноров от вредоносного кода: скрипты, опасные атрибуты и iframe с посторонних сайтов удаляются
- Защита от запросов к внутренним адресам сервера при загрузке страниц, картинок и файлов
- Все действия админки защищены от подделки запросов; ключи ИИ в настройках скрыты
Round-Robin планировщик
- Равномерное распределение нагрузки между активными источниками
- Автоматическая ротация источников
- Настройка количества материалов за один запуск CRON
- Защита CRON endpoint через secret key
- Structured logging каждого запуска
- Lock-защита от параллельного запуска одного и того же cron-процесса
Преимущества использования
- Автоматизация: полный цикл от получения материала до сохранения готовой публикации в DLE
- Мультиязычность: автоматическое заполнение языковых полей DLE Multi-Language
- Гибкость: четыре режима работы для разных типов источников
- Качество контента: AI-рерайт, перевод, генерация тегов и сохранение HTML-структуры
- Надёжность: защита от дублей, устойчивый cursor, controlled failure handling
- Прозрачность: structured logs, health metrics и понятный preview перед публикацией
- Медиа: локальное сохранение изображений, файлов, видео и галерей
- Масштабируемость: неограниченное количество источников с Round-Robin обработкой
- Совместимость: поддержка актуальных версий DLE и PHP 7.4-8.4
Сценарии применения
- Новостные агрегаторы: регулярный импорт материалов из нескольких RSS, HTML и Sitemap источников
- Тематические блоги: адаптация и перевод зарубежного контента под основной язык сайта
- Мультиязычные сайты: автоматическое заполнение языковых версий материалов
- Обзорные порталы: импорт обзоров, инструкций, гайдов и технических статей
- Региональные СМИ: сбор публикаций из локальных источников с последующей обработкой
- Образовательные проекты: импорт учебных материалов, руководств и документации
- Контентные порталы: массовое наполнение разделов с контролем дублей, категорий и тегов
Технические требования и совместимость
- DLE: 15.1 – 21.0
- PHP: 7.4 - 8.4
- PHP extensions: CURL, DOM, XPath, libxml, GD или Imagick, JSON, mbstring
- MySQL/MariaDB: совместимая версия, поддерживаемая вашей версией DLE
- Права доступа: запись в
/uploads/posts/, /uploads/public_files/, /engine/data/, /engine/cache/
- AI API: ключ любого из поддерживаемых провайдеров (или локальный сервер Ollama / LM Studio), если используется рерайт, перевод или генерация тегов
- CRON: доступ к настройке планировщика задач
- FlareSolverr: опционально, требуется только для сайтов с Cloudflare/JavaScript защитой