TrendRadar如何精准捕捉新闻趋势?

摘要:项目的初衷主要是通过聚合的35+新闻资讯,然后通过用户自定义关键词等策略实现个性化推送,想要学习资讯榜单爬取、多端推送以及构建MCP服务的读者,可以学之以用。
1. 背景 花了近三天时间,深入研究了Github近几天一直霸榜的热门项目TrendRadar,星标已达30K+,与先前的开源项目微舆,成为11月份github的趋势榜国产双雄。 项目的部署小白直接入手,基于Github Action实现一键配置与部署,项目介绍教程还是很详细的。 2. 整体流程 (1) 数据源: 和微舆一样,是基于开源项目newsnow的35+个新闻及资讯网站的榜单获取,包括抖音、头条、微博、贴吧、知乎等 (2) 定时爬虫: 基于Github Actions部署,默认每小时执行一次爬虫,具体可以参考.github/workflows/crawler.yml中的配置,爬取的数据保存在本地output。 (3) 个性化推送: 通过设置个人关注的关键词、热度趋势、时间频次等策略,可推送至微信、钉钉、飞书、Telegram、邮件、ntfy等 (4) MCP服务: 通过FastMCP构建MCP服务,且项目中提供Cherry Studio接入教程,该MCP服务提供如下工具: a. get_latest_news: 获取最新下载批次的新闻 b. get_trending_topics: 获取个人关注词的新闻出现频率统计 c. get_news_by_date: 获取指定日期的新闻数据,用于历史数据分析和对比 d. analyze_topic_trend: 统一话题趋势分析工具,整合多种趋势分析模式 e. analyze_data_insights: 统一数据洞察分析工具, 整合多种数据分析模式 f. analyze_sentiment: 分析新闻的情感倾向和热度趋势 g. find_similar_news: 查找与指定新闻标题相似的其他新闻 h. generate_summary_report: 每日/每周摘要生成器, 自动生成热点摘要报告 i. search_news: 统一搜索接口,支持多种搜索模式 j. search_related_news_history: 基于种子新闻,在历史数据中搜索相关新闻 k. get_current_config: 获取当前系统配置 l. get_system_status: 获取系统运行状态和健康检查信息 m. trigger_crawl: 手动触发一次爬取任务 3. 核心源码 (1) 整体代码非常简单,代码风格偏冗余(近5000行的main.py包含了所有),建议客官们源码可以浏览浏览。 (2) 仔细研读了FastMCP的操作手册,发现现在构建MCP服务,也是手拿把掐分分钟。
阅读全文