Технологии
🛠️ Как устроен мониторинг новостей ThinkRed
Чтобы марксистский образовательный проект ThinkRed был актуален, необходимо отслеживать события в реальном мире — забастовки, законы о труде, деятельность компартий, новые научные работы по марксизму. Ручной сбор из десятков источников отнимает часы ежедневно. Мы построили автоматизированную систему мониторинга, которая собирает информацию из 30+ источников на 4 языках, фильтрует релевантное (текущий показатель: 54%), классифицирует по категориям и — главное — генерирует конкретные действия для проекта. Рассказываем, как это работает.
📑 Содержание
1. Зачем понадобился мониторинг
Проблема: Чтобы марксистский образовательный проект ThinkRed был актуален, необходимо отслеживать события в реальном мире — забастовки, законы о труде, деятельность компартий, новые научные работы по марксизму. Ручной сбор из десятков источников отнимает часы ежедневно.
ThinkRed — это марксистский образовательный проект, предлагающий курсы по марксизму на Stepik, аналитический блог на thinkred.ru и YouTube-канал @TheThinkRed. Для содержательного, классово-ориентированного образования необходимо:
- Актуальность: связывать теорию с текущими событиями
- Научность: опираться на новейшие академические исследования
- Широта охвата: следить за рабочим движением по всему миру
- Оперативность: реагировать на события в день их происхождения
Было принято решение построить автоматизированную систему мониторинга, которая:
- Собирает информацию из 30+ источников на 4 языках
- Фильтрует релевантные события (текущий показатель: 54% релевантности)
- Классифицирует их по 8 категориям
- Ежедневно выбирает топ-5 событий и генерирует действия для проекта
- Еженедельно публикует аналитический отчёт на сайте
2. Источники данных
Система собирает данные из 6 типов источников на 4 языках. Каждый тип требует своего метода парсинга и адаптации.
2.1 Telegram — 22 канала
Telegram остаётся основной площадкой для левых организаций, компартий и активистов. Система парсит публичные каналы через t.me/s/ — веб-версию Telegram, не требующую API-ключа. Техника: requests → BeautifulSoup → регулярное выражение data-post.
| Группа | Каналы | Язык |
|---|---|---|
| Российские | Agitblog, levfront, novosti_rpr, rossolit, dumai_sam_i_sei4as | RU |
| English | thecommunists, communism, communist_world, strike_news, classwar, marx21, communist_unity, socialist_party, socialistnews, communistnews, communist_youth | EN |
| Français | particommuniste (PCF), lutteouvriere | FR |
| Español/Português | marxismoleninismo, comunistascuba, pcv_venezuela, socialismo_brasil | ES/PT |
Техника парсинга: requests → BeautifulSoup → регулярное выражение data-post. Ограничение: приватные каналы не читаются — для них нужен бот в канале.
2.2 RSS — 31 лента
RSS остаётся наиболее стабильным и структурированным источником. Ленты разделены на 5 групп:
| Группа | Кол-во | Примеры |
|---|---|---|
| Российские новости | 6 | ТАСС, Интерфакс, RT, Lenta.ru, МК, Xinhua (EN) |
| Российские левые | 6 | КПРФ (3 ленты), МГК КПРФ, Рабкор, Советская Россия |
| Международные левые | 13 | People's World, WSWS, IMT, Monthly Review, Jacobin, Tribune, Socialist Worker, Left Voice, Morning Star |
| Профсоюзы/рабочие | 4 | IndustriALL, LabourStart, Labor Notes, Global Labour Column |
| Аналитика | 2 | The New Arab, Socialist Project |
Валидация: перед добавлением каждого RSS проверяется ответ HTTP и первые 5 байт (должны быть <?xml).
2.3 VK — 11 групп
VK — ключевая площадка для российских левых организаций. Парсинг ведётся через VK API с user token (получен через OAuth-приложение Kate Mobile). Среди отслеживаемых: kprf, levfront, rotfront, komros, rabkor_ru, kommunist, marxizm, trudovaya_rossiya и другие.
2.4 Reddit — 7 subreddits
Reddit предоставляет богатый источник левого дискурса: r/communism (150k), r/socialism (500k), r/LateStageCapitalism (1.4M), r/Marxism (80k), r/labor (108k), r/union (125k), r/LeftistNews (15k). С 2024 года Reddit блокирует VPS-IP по JSON API — решение: парсинг через RSS с Firefox User-Agent.
2.5 Научные работы — OpenAlex + arXiv
Уникальная для левого мониторинга функция — отслеживание академических публикаций:
- OpenAlex — бесплатная открытая база данных. Поиск по концептам: «Marxism», «class struggle», «historical materialism», «socialist transition». ~10 запросов/сек.
- arXiv — препринты с фильтром по категориям (econ, soc-ph, cs.CY, stat.AP, math.HO) для исключения нерелевантных разделов.
Результат: за один запуск OpenAlex находит 10-15 релевантных работ. Примеры: «Towards an Open and Political Marxist theory of the state» (2026), «The Structure of Scientific Socialism» (arXiv, 2026).
2.6 Поиск — Exa MCP
DuckDuckGo блокирует VPS при 5+ запросах. Замена: Agent-Reach Exa MCP — семантический поиск через mcporter, бесплатный, без API-ключа.
3. Архитектура системы
📡 Сбор (monitor_social.py)
Парсинг Telegram → RSS → VK → Reddit → OpenAlex/arXiv → Exa. Всего ~500 записей за 160 секунд.
🔎 Фильтрация
По 100+ ключевым словам (русские + английские). 54% проходят фильтр — ~270 релевантных.
📊 Анализ (analyze_social.py)
Классификация по 8 категориям, извлечение ключевых фигур, оценка масштаба.
🔮 Прогноз
5 факторов влияния на положение рабочих с направлением и силой.
⚡ Действия (daily_digest.py)
Из топ-500 → 5 событий. Для каждого — конкретное действие: пост в Telegram, статья, интеграция в курс.
🌐 Публикация (SEO + thinkred.ru)
Генерация HTML со Schema.org, Open Graph, Twitter Cards. Автоматическое обновление sitemap и blog index.
4. Ежедневный пайплайн
Каждое утро в 9:00 запускается daily_pipeline.py — сквозной конвейер, который за ~3,5 минуты выполняет полный цикл: сбор → YouTube → дайджест → Telegram-уведомление.
📋 Пример дайджеста
Топ-5 событий с действиями:
- ⚒️ Забастовки в США → Написать пост в Telegram @thinkred_marx, добавить в курс Капитала
- 🎓 Марксистская теория государства → Внедрить в урок курса
- 🚩 Активность CPGB-ML → Сравнить стратегии компартий
- 🌍 Кубинские реформы → Статья на thinkred.ru
- 🇺🇸 UAW дивестирует из Израиля → Репост с профсоюзным анализом
5. Еженедельный аналитический отчёт
По воскресеньям в 9:00 — полный конвейер из 7 шагов, завершающийся публикацией интерактивного дашборда на thinkred.ru с KPI-панелью, графиками Chart.js, приоритетной матрицей, карточками категорий и прогнозами.
Формат отчёта: интерактивный дашборд с KPI-панелью, графиками Chart.js, приоритетной матрицей, карточками категорий, панелью прогнозов и списком источников. Посмотреть пример →
6. Технические детали
6.1 Инфраструктура
- Сервер: выделенный виртуальный сервер проекта
- Язык: Python 3.11
- Ключевые библиотеки: requests, BeautifulSoup (lxml), yt-dlp, ElementTree
- Оркестрация: Hermes Agent cron
- Поиск: Agent-Reach Exa MCP
- Деплой: автоматизированные скрипты
6.2 Фильтрация
Два набора ключевых слов: русские (50+) и английские (50+). Регистронезависимая, по вхождению в текст. Проблемные случаи: «профсоюз» → спорт (НХЛ), «РПР» → СберПрайм, «union» → European Union, «red» → redirect. Решаются на этапе постобработки.
6.3 Проблемы и их решения
| Проблема | Решение |
|---|---|
| Reddit блокирует VPS (JSON → 403) | RSS через Firefox User-Agent |
| VK API требует токен (с v5.199) | User token из OAuth (Kate Mobile) |
| DuckDuckGo банит при 5+ запросах | Exa MCP (Agent-Reach) |
| arXiv отдаёт астрофизику | Фильтр категорий |
| OpenAlex показывает даты 2028-2050 | Фильтр publication_date |
6.4 Измерения производительности
7. Эволюция системы
Июнь 2026 — первая версия: 3 Telegram-канала, 6 RSS-лент, DuckDuckGo. ~40 записей, только русские.
Июнь 2026 — расширение: +17 Telegram-каналов (English, Français, Español), +20 RSS-лент (международные), VK (11 групп), Reddit (7 subreddits). ~535 записей.
Июнь 2026 — наука и поиск: +OpenAlex +arXiv, +Exa MCP, +YouTube через yt-dlp.
Сейчас: 6 типов источников, 30+ каналов, 4 языка, 2 cron-задачи (ежедневная + еженедельная), полный цикл «сбор → анализ → действие → публикация».
8. Что дальше
Twitter/X
Agent-Reach Twitter CLI установлен. Требуется OAuth.
YouTube
yt-dlp работает. Нужно больше каналов.
CORE API
PDF-полнотекст научных работ.
Agent-Reach Reddit
rdt-cli требует login для комментариев.
Система остаётся открытой для расширения: любой новый источник добавляется через конфигурацию в monitor_social.py и валидируется автоматически.
🚩 Итог
Система мониторинга ThinkRed — это не просто агрегатор новостей. Это инструмент превращения информации в действие. Ленин писал: «Без революционной теории не может быть и революционного движения» — В. И. Ленин, «Что делать?» (1902), ПСС, т. 6, с. 24. Читать на Marxists.org →. Мониторинг ThinkRed материализует эту связь: каждая забастовка, каждая научная статья, каждая активность компартии становится не просто записью в ленте, а триггером для конкретного шага — поста в Telegram, нового урока в курсе, статьи на сайте или видео на YouTube. Именно так марксистский образовательный проект превращает теоретический материал в инструмент классовой борьбы.
🔴 Хотите увидеть систему в действии?
Подпишитесь на Telegram-канал проекта — каждый день мы публикуем дайджест топ-5 событий с анализом и действиями. А по воскресеньям — полный аналитический отчёт на сайте.
Или просто пройдите курс — это главное, что мы делаем.