52 lines
2.9 KiB
Markdown
52 lines
2.9 KiB
Markdown
### Техническое задание для AI-агента
|
||
|
||
**Задача:** Расширить систему сбора данных, добавив парсеры для трёх новых RSS-источников.
|
||
|
||
**Контекст:** Мы увеличиваем охват нашей аналитической платформы, подключая новые ключевые источники новостей из Казахстана и России. Каждый источник должен быть реализован как отдельный, независимый сервис для надежности.
|
||
|
||
---
|
||
|
||
## 1\. Общие требования для всех парсеров
|
||
|
||
Для каждого из трёх источников ниже необходимо создать отдельный Spring Boot сервис, который:
|
||
|
||
- Получает данные из RSS-ленты по URL.
|
||
- Парсит XML, извлекая `title`, `link`, `pubDate`, `description`.
|
||
- Нормализует данные: очищает текст от HTML, приводит дату к формату ISODate.
|
||
- Генерирует уникальный `sha256` хэш (`url + "::" + title`).
|
||
- Сохраняет результат в общую коллекцию MongoDB `market_items` с операцией `upsert` по хэшу.
|
||
- Запускается автоматически по расписанию **каждые 30 минут** (`@Scheduled(cron = "0 0/30 * * * ?")`).
|
||
|
||
---
|
||
|
||
## 2\. Список новых источников и их конфигурация
|
||
|
||
### Источник 1: LSM.kz
|
||
|
||
- **URL:** `https://lsm.kz/rss`
|
||
- **Название сервиса:** `lsm-parser-service`
|
||
- **`source_name` в MongoDB:** `LSM.kz`
|
||
- **`category` в MongoDB:** `Финансы`
|
||
|
||
### Источник 2: РБК
|
||
|
||
- **URL:** `https://static.feed.rbc.ru/rbc/logical/footer/news.rss`
|
||
- **Название сервиса:** `rbc-parser-service`
|
||
- **`source_name` в MongoDB:** `РБК`
|
||
- **`category` в MongoDB:** `Бизнес`
|
||
|
||
### Источник 3: Ведомости (Технологии)
|
||
|
||
- **URL:** `https://www.vedomosti.ru/rss/rubric/technology/internet`
|
||
- **Название сервиса:** `vedomosti-parser-service`
|
||
- **`source_name` в MongoDB:** `Ведомости`
|
||
- **`category` в MongoDB:** `Технологии`
|
||
|
||
---
|
||
|
||
## Критерии выполнения
|
||
|
||
- Созданы три новых Spring Boot сервиса, каждый для своего источника.
|
||
- Данные со всех трёх новых RSS-лент успешно собираются каждые 30 минут и сохраняются в коллекцию `market_items` без дубликатов.
|
||
- Структура сохраняемых документов в MongoDB полностью соответствует существующей модели.
|