Пример и параметры
{
"version": 1,
"discovery": {
"type": "rss",
"limit": 20
},
"detail": {
"enabled": true,
"always": true,
"root_selector": "article",
"fields": {
"title": {"selector": "h1", "extract": "text", "required": true},
"text": {"selector": ".article-body", "extract": "text", "required": true}
}
},
"access": {"type": "auto"},
"retry": {"attempts": 2, "delay_seconds": 2, "timeout_seconds": 90},
"min_text_length": 50
}
discovery.type: rss читает ссылки из ленты; html собирает карточки по item_selector. Секция detail описывает точные селекторы полей на странице материала.
access.type: auto сначала пробует обычный запрос; http запрещает браузер; browser выполняет страницу в браузере; cloudflare разрешает RuCaptcha.
Для fallback используйте candidates. Извлечение поддерживает text, html, attr и json. Ошибка одной detail-страницы не прерывает готовую пачку.
min_text_length переопределяет общий порог Site Parser только для этого источника.