AI-агент для сбора новостей или готовые no-code инструменты
Создать AI-агента для сбора новостей. Вот пошаговый план, который поможет вам реализовать этот проект. Мы будем использовать Python, так как для него существует множество готовых библиотек.
Этап 1: Планирование и настройка
Прежде чем писать код, нужно все подготовить.
- Определите критерии новостей. Это новости с определенными ключевыми словами (например, "искусственный интеллект"), на определенную тему или с определенной тональностью. Четкое определение поможет на этапе фильтрации.
- Составьте список источников. Укажите полные URL-адреса 7 сайтов и точные названия 7 Twitter-аккаунтов.
- Настройте рабочее окружение.
- Установите Python.
- Установите необходимые библиотеки. Откройте терминал или командную строку и выполните следующие команды:Bash
pip install requests beautifulsoup4 tweepy scikit-learn pandas - Получите доступ к Twitter API.
- Зарегистрируйте аккаунт разработчика на портале разработчиков Twitter (X).
- Создайте новое приложение.
- Сгенерируйте и сохраните ключи API: API Key, API Secret Key, Access Token и Access Token Secret. Они понадобятся для доступа к данным Twitter.
Этап 2: Сбор данных
На этом этапе мы напишем скрипты для сбора информации с сайтов и из Twitter.
Сбор новостей с сайтов (веб-скрапинг)
Для каждого из 7 сайтов придется написать отдельный парсер, так как их структура будет отличаться. Основной принцип таков:
- Используйте библиотеку
requests, чтобы получить HTML-код страницы. - Используйте
BeautifulSoup, чтобы извлечь из HTML-кода нужную информацию (заголовки, текст, даты).
import requests
from bs4 import BeautifulSoup
# URL целевого сайта
url = 'https://example-news-site.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# Найдите все заголовки новостей (этот селектор будет разным для каждого сайта)
headlines = soup.find_all('h2', class_='article-title')
for headline in headlines:
print(headline.text)
Вам нужно будет изучить HTML-код каждого сайта, чтобы найти правильные теги и классы для заголовков, текста и дат.
Сбор данных из Twitter
Используйте библиотеку tweepy и ваши ключи API для получения твитов.
import tweepy
# Ваши ключи API
api_key = "ВАШ_API_KEY"
api_secret_key = "ВАШ_API_SECRET_KEY"
access_token = "ВАШ_ACCESS_TOKEN"
access_token_secret = "ВАШ_ACCESS_TOKEN_SECRET"
# Аутентификация
auth = tweepy.OAuthHandler(api_key, api_secret_key)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# Получение последних твитов с аккаунта 'twitter_username'
tweets = api.user_timeline(screen_name='twitter_username', count=10, tweet_mode='extended')
for tweet in tweets:
print(tweet.full_text)
Этот скрипт нужно будет запустить для каждого из 7 аккаунтов.
Этап 3: Обработка и фильтрация с помощью AI
Теперь, когда у вас есть "сырые" данные, их нужно обработать и отфильтровать.
- Предварительная обработка текста. Очистите собранный текст: удалите HTML-теги, лишние пробелы и знаки препинания.
- Классификация текста (AI-компонент). Это сердце вашего агента. Вам нужно научить модель отличать нужные новости от ненужных.
- Создайте обучающий набор данных. Соберите небольшой набор новостей (50-100 примеров) и вручную разметьте их: "подходит" или "не подходит".
- Векторизация текста. Преобразуйте текст в числа, которые сможет понять модель. Для этого используется
TfidfVectorizerиз библиотекиscikit-learn. - Обучение модели. Используйте простой, но эффективный алгоритм, например, "Наивный Байес" (
MultinomialNB).
Пример кода для обучения и применения модели:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import make_pipeline
# Пример обучающих данных
data = [
("Технологии искусственного интеллекта меняют мир", "подходит"),
("Вчера прошел футбольный матч", "не подходит"),
("Новые достижения в машинном обучении", "подходит"),
("Рецепт яблочного пирога", "не подходит"),
]
# Разделяем тексты и метки
texts = [item[0] for item in data]
labels = [item[1] for item in data]
# Создаем и обучаем модель
model = make_pipeline(TfidfVectorizer(), MultinomialNB())
model.fit(texts, labels)
# Применяем модель к новым данным
собранные_новости = ["NVIDIA представила новый ИИ-ускоритель", "Политика и экономика сегодня"]
предсказания = model.predict(собранные_новости)
for новость, категория in zip(собранные_новости, предсказания):
if категория == "подходит":
print(f"Новость: '{новость}' - подходит!")
Примените эту модель ко всем собранным новостям, чтобы отфильтровать только те, которые соответствуют вашим критериям.
Этап 4: Хранение и автоматизация
- Хранение результатов. Отфильтрованные новости можно сохранять в удобном для вас формате:
- CSV-файл или JSON-файл: просто и удобно для небольших объемов данных.
- База данных (например, SQLite): более надежное решение, если новостей будет много.
- Автоматизация. Чтобы агент работал самостоятельно, его нужно запускать по расписанию.
Например, чтобы скрипт news_agent.py запускался каждый час, команда в cron будет выглядеть так:
0 * * * * python /путь/к/вашему/скрипту/news_agent.py
Таким образом, ваш AI-агент будет автоматически собирать, фильтровать и сохранять нужные вам новости, экономя ваше время.
Чтобы избежать написания кода и технических сложностей, вы можете использовать готовые no-code ("без кода") инструменты. Они позволяют создавать автоматизированные процессы в визуальном редакторе, соединяя разные сервисы между собой.
Вот лучшие варианты для вашей задачи, разделенные на категории.
Инструменты автоматизации (Лучший выбор)
Эти сервисы — ваш "клей" для интернета. Вы можете сказать им: "Когда на таком-то сайте или в Твиттере появляется что-то новое, возьми это и положи вот сюда".
- Make.com (ранее Integromat): Очень мощный и гибкий инструмент с наглядным графическим интерфейсом. Вы можете буквально видеть, как данные перетекают из одного сервиса в другой.
- Как это работает: Вы создаете "сценарий".
- Триггер: "Следить за RSS-лентой сайта" или "Следить за новым твитом от пользователя @имя". Большинство новостных сайтов имеют RSS-ленту, что сильно упрощает сбор данных.
- Действие: "Добавить полученные данные в Google Таблицу" или "Отправить уведомление в Telegram".
- Фильтр: Вы можете добавить условие, чтобы отбирать только новости, содержащие определенные ключевые слова.
- Zapier: Самый известный и простой в использовании инструмент. У него огромная база готовых интеграций. Он немного менее гибкий, чем Make, но для старта — идеален.
- Минимум технических знаний: Не нужно писать код.
- Гибкость: Можно соединять тысячи разных приложений.
- Надежность: Эти платформы работают 24/7.
- Зависимость от RSS: Сбор данных с сайтов проще всего, если у них есть RSS-лента. Если ее нет, задача усложняется.
- Ограничения тарифов: Бесплатные планы имеют ограничения по количеству операций в месяц.
Визуальные веб-скраперы (Если у сайтов нет RSS)
Если нужные вам сайты не предоставляют RSS-ленты, вам понадобится инструмент, который может "смотреть" на веб-страницу и забирать с нее данные. Это и есть веб-скрапинг, но без кода.
- ParseHub: Мощный инструмент, который позволяет просто кликать на нужные элементы на странице (заголовки, текст, даты), чтобы научить его, какую информацию собирать. У него есть бесплатный тариф для небольших проектов.
- Octoparse: Очень популярен, имеет дружелюбный интерфейс и готовые шаблоны для многих популярных сайтов. Позволяет настроить регулярный сбор данных по расписанию.
- Вы открываете целевой сайт внутри программы.
- Кликаете на заголовок первой новости, потом на второй — программа понимает, что нужно собрать все похожие заголовки.
- Проделываете то же самое для ссылок, дат и т.д.
- Настраиваете расписание и указываете, куда выгружать данные (например, в Excel или JSON).
- Работает с любыми сайтами: Не зависит от наличия RSS или API.
- Визуальный процесс: Вы наглядно "обучаете" робота.
- Небольшая кривая обучения: Потребуется час-другой, чтобы разобраться в интерфейсе.
- Хрупкость: Если сайт изменит свой дизайн, скрапер может "сломаться", и его придется настраивать заново.
Рекомендуемый простой сценарий
- Центр хранения данных: Создайте таблицу в Airtable или Google Sheets. Это будет ваша база данных, куда будут падать все собранные новости.
- Инструмент автоматизации: Зарегистрируйтесь в Make.com.
- Настройка сбора:
- Для сайтов: Найдите их RSS-ленты (часто ссылка есть в "подвале" сайта или по адресу
имя-сайта.ру/rss). В Make.com используйте модуль "RSS" и укажите ссылку на ленту. - Для Твиттера: В Make.com используйте модуль "X (formerly Twitter)" для отслеживания твитов от нужных аккаунтов.
- Создание сценария в Make.com:
Таким образом, вы получите полностью автоматизированный процесс сбора новостей, который не требует ни строчки кода и легко настраивается.