Автопарсер новостей: агрегатор для канала MAX, ВК и Телеграм

Автопарсер новостей: агрегатор для канала MAX, ВК и Телеграм

**URL:** https://dzen.ru/a/akcjCbkSuTJ_wrRY

---

Ведёте новостной канал в Телеграме, ВК или свежем MAX. Значит, каждое утро вы делаете одно и то же: заходите в 15-20 источников, читаете, отбираете 5-7 достойных постов, переписываете их своим тоном, ищете картинку, публикуете. Потом повторяете во второй канал, потом в третий. В сумме уходит два-три часа в день на рутину, которую алгоритмически можно сжать до пары минут внимания.

В этой статье покажу, как устроен наш «новостной комбайн» - сервис, который сам подсасывает новости из ВК-групп, Телеграм-каналов и RSS-фидов, отсекает мусор, переписывает под ваш голос и раскладывает по каналам в MAX, ВК и Телеграме. И в конце - способ, который у нас закрывает всю эту работу за 15 минут в день на два новостных проекта одновременно, дочитайте до финала, там как раз про доступ.

Что делает автопарсер новостей

По сути это агрегатор новостей россии с фильтром под конкретный канал. За последние 7 дней две наши боевых системы сработали так:

25 источников (VK-паблики + Телеграм-каналы + RSS-фиды) 828 новостей прочитано и разобрано 6 активных каналов (по 3 в каждой системе: TG, ВК, MAX) 352 итоговых поста опубликовано

Одна система - региональная лента маленького города, вторая - три канала городского юмористического паблика в разных городах. Задачи у них разные, но движок один. Разберу по шагам, что он делает.

Шаг 1. Подсасывает новости из ВК, ТГ и RSS

Первый уровень - парсер. Каждую минуту он ходит по списку заведённых источников и забирает свежие посты. Источник заводится один раз: указываете URL VK-паблика, ссылку на Телеграм-канал (публичный или через приглашение), либо RSS-ленту сайта. Дальше парсер работает сам.

По VK ходим через официальный API (лимит там не жмёт, если не жадничать). По Телеграму - через пользовательскую сессию, чтобы читать закрытые и полузакрытые каналы без ограничений бота. RSS - тривиально через feedparser.

Технически парсер тянет заголовок, полный текст поста и все прикрепленные фото. Заранее фильтрует по свежести: пост старше 24 часов игнорируется, чтобы в ленту не попадали случайные вспышки из архивов, когда паблик что-то там репостнул.

Шаг 2. Не публикует дубли

Дубль - главный убийца читателя. Если один и тот же пожар обошёл 5 источников, вы не хотите видеть в ленте 5 версий одного события подряд. Наш дедуплекс работает в два уровня.

Первый - смысловое сравнение. Каждый текст проверяем на сходство со всеми постами за последние 72 часа. Если совпадение выше 0.85 - помечаем как потенциальный дубль.

Второй уровень - LLM-судья. Когда сходство пограничное (например 0.80-0.90), мы отправляем оба текста в языковую модель с промптом «это одно и то же событие или разные?». Только тогда принимаем окончательное решение. Такой подход убивает 95% дублей и практически не срезает уникальный контент.

Если дедуплекс срабатывает - новость отправляется в архив с пометкой, вы её увидите в интерфейсе как отфильтрованную, но она не пойдёт дальше.

Шаг 3. Классифицирует - тема, регион, важность

Классификатор - это отдельная нейросеть, точнее вызов языковой модели с жёстко структурированным промптом. По каждой новости она выдаёт восемь параметров:

тип контента (новость, объявление, шутка, реклама, мусор) тематика (происшествия, экономика, культура, спорт, политика и ещё 5 категорий) масштаб (локальный, региональный, федеральный, мировой) уровень «нашести» - насколько это наша аудитория (шкала 0-10) регион и город из текста срочность скандальность итоговый приоритет

Классификатор - самое ценное, что есть в системе. Без него все остальные шаги теряют смысл, потому что не по чему фильтровать. С хорошим классификатором можно строить каналы любой тематической глубины: «только про мой район», «только про малый бизнес», «только про новостройки».

Шаг 4. Фильтрует под конкретный канал

Дальше уже настроенная под конкретный канал логика решает: брать эту новость или нет. У каждого канала есть свой набор фильтров, которые вы редактируете руками в веб-интерфейсе:

Список разрешённых тематик (можно взять только «происшествия» и «культура», остальное игнорировать) Список разрешённых типов контента (например, без анонсов) Гео-фильтр: только Смоленская область, или конкретный город Плюс-ключевые слова, которые повышают приоритет Минус-ключевые слова, которые режут напрочь Минимальный порог «нашести» (например брать только новости с уровнем 6+ из 10)

В нашей региональной ленте гео-фильтр стоит на конкретный муниципальный округ и город. Всё что попадает как «регионально Смоленщина», но не относится к нашему району - отфильтровывается. Юмористический паблик наоборот берёт всё федеральное с контент-типом «новость» и высокой скандальностью, а локальные новости игнорирует.

Шаг 5. Переписывает под тон вашего канала

Это, пожалуй, самый заметный шаг для читателя. Оригинал новости в Инциденте Смоленск сухой и штампованный. У вас в канале - свой голос: ироничный, разговорный, короткие абзацы, конкретные детали, комментарий от «редактора канала».

Для каждого канала настроен свой промпт-инструкция для языковой модели. Там прописано: как обращаетесь к читателю, какие эмоциональные акценты используете, какие темы усиливаете, как относитесь к конкретным типам событий. Плюс, дообучение на 15-20 примерах того, как выглядят ваши идеальные посты - берётся из уже опубликованных вручную.

Языковая модель переписывает исходную новость через этот промпт. На выходе - готовый пост под ваш канал, с сохранённой фактурой оригинала, но в вашей эстетике. Одна и та же новость про закрытие роддома в двух наших каналах выйдет двумя совсем разными постами: в региональной ленте - с локальным контекстом и упоминанием конкретной улицы, в юмористическом - с шуткой на тему бюрократии.

Шаг 6. Генерирует картинки, если у оригинала нет

Часто фото к оригинальной новости либо отсутствует, либо на нём водяной знак источника, который вам не нужен. Наш модуль автогенерации решает эту проблему для каждого канала отдельно.

Работает так: языковая модель сначала извлекает из новости «визуальную сцену» (что происходит, где, кто). Потом другая модель - генератор изображений - создаёт под это описание фотореалистичную иллюстрацию. Стиль генерации настраивается для каждого канала: одна лента получает документальный фото-стиль, другая - смешные иллюстрации с преувеличением.

Если у оригинала есть чистое фото без водяного знака - используем его. Если фото есть, но с водянкой - генерируем новое (иначе бан от площадки за копирование). Если фото нет вообще - генерируем с нуля.

За неделю через генерацию картинок у нас прошло 200+ постов. Стоимость одного изображения через нейросеть - около 3 копеек, эта строка расходов почти не видна в общем бюджете.

Шаг 7. Публикует одновременно в MAX, ВК и Телеграм

Финальный шаг - публикация. У сервиса подключены три платформы:

Телеграм - через пользовательскую сессию (можно постить и в свой канал, и в чужой, если вы там администратор) ВКонтакте - через официальный API, включая свои личные группы и группы клиентов MAX - через новую реализацию канального API (сейчас как раз растёт, конкуренция низкая, самое время строить в нём новостные каналы в макс)

Публикация происходит сразу во все три канала, но каждый - со своим переписанным вариантом (если в канальных настройках разный тон) и со своей картинкой. Кросспостинга в буквальном смысле нет, есть параллельная публикация под каждый канал отдельно.

Что ещё умеет комбайн - четыре дополнительные фичи

Основной конвейер прошли, теперь про надстройки, которые превращают этот сервис из «бота-репостёра» в полноценную ленту.

Заполнение тихих часов

Вечером и ночью источники обычно ничего не выдают. Читатель заходит в канал в 22:00, видит последний пост в 15:00 - лента будто спит. Наш «буфер тихих часов» держит запас вечнозелёных постов, которые не привязаны к дате: годовщины, факты про район, тематические подборки. Когда парсер не приносит свежих новостей более 2 часов, комбайн достаёт один пост из буфера и публикует его, чтобы канал не выглядел заброшенным.

Пауза после чужой рекламы

Если у вас на канале иногда бывают рекламные посты от рекламодателей, а не только ваши редакционные - есть проблема: если ваш собственный пост уходит сразу после рекламы, читатель их визуально сливает. Комбайн следит за последним постом в канале: если он рекламный или чужой (не из вашей ленты), делает паузу настраиваемой длительности перед следующей своей публикацией. По умолчанию 60 минут. Пауза настраивается для каждого канала отдельно.

Отчёт «что не прошло»

Все отбракованные новости не пропадают. В интерфейсе есть отдельная вкладка «отбракованные» - там показывается, что было отсеяно и на каком именно шаге. Дедуплекс, гео-фильтр, тематика, ключевые слова, чистка нейросетью - у каждого свой понятный код. Если видите, что что-то интересное было ошибочно отсеяно - жмёте кнопку «это нам надо», и пост пойдёт в вашу очередь публикации вручную.

Отчёт особенно полезен на этапе настройки: за первую неделю вы понимаете, что классификатор слишком строг к какой-то тематике, и меняете правило.

Расход нейросети в рублях

Для владельца канала важно понимать бюджет: сколько стоит запуск сервиса в месяц? В интерфейсе есть страница «расход нейросети», где показано, сколько сессий за какую цену вы прогнали. Классификация одной новости через языковую модель обходится примерно в 0.5 рубля. Переписывание под канал - около 1.5 рубля. Генерация картинки - 3 рубля.

За неделю на региональной ленте с 3 каналами мы наработали 130 рублей. Это дешевле, чем пять минут работы редактора в час.

Мой способ - готовый сервис, который делает всё это за вас

Всё, что описано выше - это работающая система, которая крутится у нас в двух проектах прямо сейчас. Мы не заказываем разработку под каждого клиента, у нас типовой каркас, куда мы за 2-3 дня заводим ваши источники, ваши каналы и настраиваем тон под ваш голос.

Что получаете:

три канала в MAX, ВК и Телеграме автоматически - вопрос «как сделать канал в max» закрыт заранее нейросеть для постов, натренированная под ваш редакционный стиль 15 минут в день на модерацию вместо трёх часов ручной работы отчёты по расходу нейросети в рублях, никаких сюрпризов

Если у вас есть новостной канал, который хочется масштабировать без найма редактора - напишите нам в MAX, ВК или Телеграм по ссылкам ниже. Скинем демо, покажем как работает изнутри, и посчитаем стоимость подключения именно ваших источников.

Понравилась статья - жмите 👍, это помогает Дзену показывать её другим владельцам новостных каналов.

Наши точки контакта:

Телеграм: @kochegarov_pro_target ВКонтакте (личный блог): club179084362 MAX: id672507662616_biz

Пишите, обсудим ваш проект.

---

## Ссылки в статье

- [ВК](/away?to=https%3A%2F%2Fvk.ru%2Ftherebro) - [@kochegarov_pro_target](/away?to=https%3A%2F%2Ft.me%2Fkochegarov_pro_target) - [club179084362](/away?to=https%3A%2F%2Fvk.ru%2Fclub179084362) - [id672507662616_biz](/away?to=https%3A%2F%2Fmax.ru%2Fid672507662616_biz)

20

Комментарии0

Читайте также

Как узнать ID пользователя в MAX (и канала, и бота) — простое решение

Как узнать ID пользователя в MAX (и канала, и бота) — простое решение

Вы столкнулись с вопросом, как узнать ID пользователя в Максе для настройки рассылки или интеграции? В отличие от некоторых других мессенджеров, в MAX этот уникальный идентификатор пользователя не ото

2236
Как подключить кнопку выдачи лид-магнита в канале МАХ (даже в приватном)

Как подключить кнопку выдачи лид-магнита в канале МАХ (даже в приватном)

(пошаговая инструкция) Я уже перепробовала несколько ботов. Даже видео сняла про них. И знаете что? То видео можно удалять. Потому что бот стал платный, а платить каждый месяц только за комментарии

1
488