Маркетинг и контент 4 мин чтения

open-news: упоминания и новостной дайджест компании на Python

Python-библиотека open-news ищет новости через Google News и DuckDuckGo, убирает дубли и ранжирует их. Проверил лицензию, возраст, русский язык и риски, показал, как собрать утреннюю сводку упоминаний бренда.

open-newsмониторинг упоминанийновостной дайджестPython
Коротко. open-news (репозиторий alphap365/open-news, лицензия MIT) это Python-библиотека. Она ищет новости через Google News RSS и DuckDuckGo, находит RSS-ленты, достаёт текст статей, убирает дубли и ранжирует результаты. Из неё можно собрать утреннюю сводку упоминаний бренда, конкурентов и отрасли для Telegram или MAX. Проект молодой: создан 16.05.2026, один автор, 47 звёзд, последний коммит в основной ветке от 22.09.2026. Документация на английском, краткое изложение рассчитано на английский, источники неофициальные и могут отвалиться. Сам я библиотеку не запускал, пишу по документации и коду.
Хотите внедрить это у себя?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.

Автоматизация бизнеса: сбор упоминаний и дайджест в Telegram и MAX

Утренний обзор прессы руками

Маркетолог каждое утро вбивает в поиск название компании, трёх конкурентов и отрасль, листает выдачу и копирует ссылки руководителю. Условный пример: 40 минут в день, 20 рабочих дней, около 13 часов в месяц. Допущения мои, у вас цифры другие.

Разговоры в городских чатах и пабликах я разбирал в статье про мониторинг упоминаний компании, отзывы и соцсети в материале про репутацию бренда. Здесь речь о СМИ и новостных сайтах. Для страниц без новостной ленты, вроде прайса поставщика, есть changedetection.io.

Что это за проект и что я проверил

Проверял 21.10.2026 по репозиторию и PyPI. Репозиторий не архивирован, в файле LICENSE текст MIT. Создан 16 мая 2026 года, сейчас 47 звёзд, 5 форков, открытых обращений нет.

Автор один: в pyproject.toml указан Arajit Paul, и все 211 коммитов из списка участников принадлежат одному аккаунту. Последний коммит в ветке main от 22 сентября, в тот день вышел релиз v1.0.4. Отдельная ветка feat/v1.1-architecture-workflows обновлялась 10 октября, в основную она не влита.

Ставится командой pip install open-news-api: пакет на PyPI назван иначе, чем репозиторий, версия 1.0.4 от 22.09.2026, нужен Python 3.10 или новее. Есть командная строка open-news, терминальный интерфейс open-news-tui и Python API.

Откуда берутся новости и как с русским

Своих данных у проекта нет, он ходит в поисковую выдачу. Функция fetch проходит цепочку из пяти источников: DuckDuckGo через библиотеку ddgs, Google News RSS, Bing News, Yahoo News и HTML-выдача DuckDuckGo. Берётся первый источник, который что-то вернул, результаты разных не смешиваются. Поиск по словам search идёт только через Google News RSS. Для мониторинга нужен он: запрос с названием, исключениями и диапазоном дат.

Про условия источников. В README ddgs написано, что библиотека предназначена только для образовательных целей. Официальных правил для автоматических запросов к RSS Google News я не нашёл, поэтому лимиты и коммерческое использование считаю неподтверждёнными.

Теперь русский. По коду фильтры слов, дедупликация и ранжирование работают с Unicode, кириллица обрабатывается, фильтр языка знает ru. Адрес Google News собирается из параметров country и language, для России получится gl=RU и ceid=RU:ru, но я это не проверял, документация приводит примеры про Индию и хинди. В цепочке fetch код превращает location «ru» в регион ru-en, поэтому русскую выдачу нужно задавать явно как ru-ru. Встроенное краткое изложение рассчитано на английский: на кириллице оно сводится к первым предложениям или опирается на английский токенизатор. Краткое изложение я делаю отдельным шагом.

Дубли, сюжеты и ранжирование

Дубли убираются в два шага. Сначала адреса приводятся к одному виду: уходят utm-метки и www, ссылки-редиректы Google News раскрываются. Затем по умолчанию идёт нечёткое сравнение заголовков с порогом сходства 0,85, на выборке больше 300 статей оно пропускается. Сравнение идёт по символам, поэтому заметка с переписанным заголовком о том же событии может не склеиться.

Для сюжетов есть cluster_articles: статьи группируются по похожести заголовков (порог по умолчанию 0,75), ничего не выбрасывается, размер группы показывает, сколько изданий написали об одном. В дайджесте сюжет из шести изданий важнее заметки на одном сайте.

Сортировка по умолчанию идёт по дате, есть варианты по порядку выдачи и по популярности. Функция rank_articles считает релевантность запросу: BM25, если поставлен пакет nlp, иначе TF-IDF.

Чего в библиотеке нет. Хранение истории между запусками я в документации не нашёл: потоковый режим подавляет повторы, но по описанию архитектуры это происходит в рамках работающего процесса. Нет расписания и нет отправки сообщений. Эти части я делаю сам: база увиденных ссылок в SQLite, запуск по расписанию, доставка в Telegram или MAX.

Что важно учесть

Проект молодой, автор один, в main месяц без коммитов. Если он остановится, исправлять будет некому, поэтому версию фиксируем (open-news-api==1.0.4) и перед запуском проверяем результат на своих запросах.

Всё держится на чужой выдаче. Поисковик поменял формат или ограничил частоту, и источник вернёт пустой ответ. Автор сам перечисляет известные проблемы: location это подсказка для поиска, даты у агрегаторов приблизительные, описания иногда состоят из шаблонного текста. Нужен контроль «сегодня пришло ноль новостей» с сигналом мне.

Вежливость к источникам. Краулер сайтов по умолчанию читает robots.txt, но запросы идут по 10 одновременно, без пауз, до 40 страниц за проход, с браузерным User-Agent из списка. Проверку robots я нашёл только у краулера. Потоковый режим не принимает интервал короче 5 секунд, дайджесту хватит прохода в сутки. Сайты я беру через их RSS, список источников согласуем. JavaScript-рендеринг идёт через Playwright с браузером Chromium и нужен там, где текст подгружается скриптом. Закрытые разделы и платные статьи мы не собираем.

Авторское право. По статье 1259 ГК РФ (пункт 6, подпункт 4) сообщения о новостях дня, имеющие исключительно информационный характер, объектами авторских прав не являются. Авторская статья, аналитика и фотографии защищены. Статья 1274 допускает цитирование в информационных целях без согласия автора, если указаны автор и источник, а объём оправдан целью. Поэтому в дайджесте заголовок, издание, ссылка и короткий фрагмент. Полные тексты скачиваются для внутреннего анализа и дальше не уходят. Я не юрист, уточняйте у юриста.

Что можно сделать уже сейчас

Составьте список запросов: название во всех написаниях, три-пять конкурентов, две-три отраслевые темы, слова-исключения для тёзок и однофамильцев.

Поставьте библиотеку в отдельное окружение и неделю гоняйте поиск с country=ru и language=ru. Посчитайте долю нужных заметок. Если полезных меньше половины, источники для вас слабые.

Выпишите 10-15 сайтов с RSS: отраслевые СМИ, региональные издания, пресс-центры конкурентов. Для страниц без ленты подойдёт отслеживание изменений, регулярный запуск описан в статье про задачи по расписанию.

Неделю присылайте руководителю дайджест вручную и спросите, что лишнее. Потом автоматизируйте. Весь конвейер (сбор, дедупликация, краткое изложение, доставка) я собираю в рамках услуги по автоматизации бизнеса, формат сообщения близок к дашборду руководителю в Telegram и MAX.

Частые вопросы

Можно ли использовать библиотеку в коммерческом проекте?

Код под MIT, это разрешает. Условия источников, Google News и DuckDuckGo, лицензия кода не отменяет, и я их не подтвердил.

Есть ли Яндекс.Новости и другие российские источники?

В списке источников их нет. Остаются Google News с русской локалью и RSS-ленты конкретных сайтов.

Коротко о главном

open-news под MIT собирает новости из открытой выдачи, убирает дубли, группирует сюжеты и ранжирует их. Для русского языка почти всё придётся проверять, краткое изложение и расписание делаются отдельно, а стабильность зависит от одного автора и чужих сайтов.

Если хотите получать утром в Telegram или MAX сводку упоминаний компании, конкурентов и отрасли со ссылками на источники, напишите мне в Telegram кодовое слово «УПОМИНАНИЯ». Соберу пробный дайджест на ваших запросах.

Обсудим вашу задачу

Что я делаю для бизнеса

Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ
Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх