TrendRadar:开源趋势监控工具

25 阅读12分钟

在信息爆炸的时代,如何从海量资讯中精准捕捉有价值的内容?TrendRadar 以其智能化、可视化的解决方案,正在重新定义信息获取的方式。

一、TrendRadar:是什么让它成为信息过滤的神器?

1.1 诞生背景:信息过载时代的解决方案

在当今信息爆炸的环境中,普通人每天平均要刷2.3小时社交媒体,却仍感叹"错过热点"。企业公关团队需同时监控数十个平台,却难逃"数据噪音"的干扰。各个平台的热搜榜刷到手指发酸,真正关心的内容却被淹没在信息洪流中。

TrendRadar 应运而生,作为一款开源的热点新闻聚合分析系统,它通过智能化的技术手段,为用户提供了一个高效、个性化的新闻获取解决方案。它不只是一个"爬虫脚本",而是一套完整的热点聚合 + 个性化筛选 + 多端推送 + AI 深度分析的开源方案。

1.2 核心价值:从被动刷屏到主动获取

TrendRadar 的核心价值在于它将被动刷屏转变为主动获取,通过自动化流程帮助用户精准捕捉感兴趣的内容。其核心优势体现在:

  • 跨平台统一监控:默认监控 11 个主流平台(微博、抖音、B站等),也可自行增加额外的平台
  • 个性化筛选机制:通过智能关键词系统,只展示与你相关的信息
  • 多维度分析能力:生成热点排名、词云、传播趋势图
  • 灵活推送方式:支持多种通知渠道,适应不同用户场景

二、核心功能特点:全面解析TrendRadar的技术优势

2.1 全网热点聚合能力

TrendRadar 的核心能力之一是广泛的数据覆盖范围:

  • 多平台支持:集成知乎、微博、抖音、百度热搜等 11+ 主流平台,也可自行增加额外的平台
  • 统一数据接口:基于 newsnow 项目的 API,简化了多平台适配的复杂性
  • 实时数据更新:支持不同的抓取频率,确保信息的时效性

2.2 智能内容筛选系统

TrendRadar 的智能筛选系统是其最核心的竞争力,支持三种关键词匹配语法:

# 智能关键词匹配系统示例
def matches_word_groups(title: str, word_groups: List[Dict], filter_words: List[str]) -> bool:
    """检查标题是否匹配词组规则"""
    title_lower = title.lower()
    
    # 1. 过滤词检查(优先级最高)
    if any(filter_word.lower() in title_lower for filter_word in filter_words):
        return False
        
    # 2. 词组匹配检查
    for group in word_groups:
        required_words = group["required"]  # 必须词(+)
        normal_words = group["normal"]      # 普通词
        
        # 必须词检查:所有必须词都必须包含
        if required_words:
            all_required_present = all(
                req_word.lower() in title_lower for req_word in required_words
            )
            if not all_required_present:
                continue
                
        # 普通词检查:包含任意一个即可
        if normal_words:
            any_normal_present = any(
                normal_word.lower() in title_lower for normal_word in normal_words
            )
            if not any_normal_present:
                continue
                
        return True
        
    return False

匹配规则详解:

  • 普通词:标题包含任意一个即匹配
  • 必须词(+):标题必须同时包含所有必须词
  • 过滤词(!):包含过滤词直接排除,优先级最高
  • 词组管理:通过空行分隔不同词组,独立统计分析

2.3 个性化热点排序算法

TrendRadar 的独特之处在于它不简单按"抓到的时间顺序"或"平台原始排名"展示新闻,而是引入自定义的综合权重算法:

def calculate_news_weight(title_data: Dict, rank_threshold: int = CONFIG["RANK_THRESHOLD"]) -> float:
    """计算新闻权重,用于排序"""
    ranks = title_data.get("ranks", [])
    count = title_data.get("count", len(ranks))
    weight_config = CONFIG["WEIGHT_CONFIG"]

    # 排名权重:Σ(11 - min(rank, 10)) / 出现次数
    rank_scores = [11 - min(rank, 10) for rank in ranks]
    rank_weight = sum(rank_scores) / len(ranks) if ranks else 0

    # 频次权重:min(出现次数, 10) × 10
    frequency_weight = min(count, 10) * 10

    # 热度加成:高排名次数 / 总出现次数 × 100
    high_rank_count = sum(1 for rank in ranks if rank <= rank_threshold)
    hotness_ratio = high_rank_count / len(ranks) if ranks else 0
    
    # 综合权重计算
    total_weight = (rank_weight * weight_config["rank_weight"] + 
                   frequency_weight * weight_config["frequency_weight"] + 
                   hotness_ratio * weight_config["hotness_weight"])
    
    return total_weight

该算法综合考虑了三个核心维度:

  • 排名权重(60%):新闻在各平台榜单中的位置
  • 频次权重(30%):新闻在不同平台出现的次数
  • 热度权重(10%):新闻在高位排名出现的比例

2.4 多渠道推送支持

TrendRadar 支持多种推送方式,适应不同用户的使用习惯:

推送渠道适用场景配置方式
企业微信企业团队协作Webhook URL
飞书互联网企业Webhook URL
钉钉传统企业Webhook URL
Telegram个人用户Bot Token + Chat ID
电子邮件正式报告SMTP 配置
ntfy技术爱好者服务器地址

2.5 AI智能分析功能

TrendRadar v3.0.0 新增了基于 MCP(Model Context Protocol)协议的对话式分析功能,通过 FastMCP 搭建 trendradar-news MCP Server,对外暴露 13 个工具,能被 Claude、Cursor、Cherry Studio、Cline 等 MCP 客户端调用,完成自然语言查询与分析。

三、安装部署:从零开始快速搭建

3.1 环境准备与要求

在开始部署 TrendRadar 之前,需要确保系统满足以下基本要求:

  • Python 环境:Python 3.x
  • 容器支持(可选):Docker 和 Docker Compose
  • 版本控制:Git
  • 网络要求:能正常访问国内主流社交平台

3.2 GitHub Pages 快速部署(最适合新手)

对于只想快速体验 TrendRadar 的用户,GitHub Pages 是最简单的部署方式:

步骤一:Fork 项目

  1. 访问 TrendRadar GitHub 仓库
  2. 点击右上角的 'Fork' 按钮,将项目复制到自己的 GitHub 账户

步骤二:启用 GitHub Pages

  1. 进入你 Fork 后的仓库 → SettingsPages
  2. Source 选择 GitHub Actions,保存

步骤三:自动生成日报

  • 仓库自带 GitHub Actions 工作流,会每天自动抓取热榜并生成 HTML
  • 部署完成后,你会得到一个 https://<你的用户名>.github.io/TrendRadar/ 的访问地址

3.3 Docker Compose 部署(推荐用于生产环境)

对于需要实时推送功能的用户,Docker Compose 是最可靠的部署方式:

步骤一:获取部署文件

# 创建目录结构
mkdir -p trendradar/{config,docker}
cd trendradar

# 下载配置文件模板
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/config.yaml -P config/
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/frequency_words.txt -P config/

# 下载 docker-compose 配置
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/docker/.env -P docker/
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/docker/docker-compose.yml -P docker/

步骤二:配置推送渠道

cd docker/
vi .env

# Webhook 配置示例
FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx
TELEGRAM_BOT_TOKEN=1234567890:ABCDEFGHIJKLMNOPQRSTUVWXYZ
TELEGRAM_CHAT_ID=-1001234567890

# 运行配置
CRON_SCHEDULE=*/30 * * * *  # 每 30 分钟执行一次
RUN_MODE=cron               # 运行模式:cron/once
IMMEDIATE_RUN=true          # 启动时立即执行一次

步骤三:启动服务

# 拉取最新镜像并启动
docker-compose pull
docker-compose up -d

# 查看运行日志
docker logs -f trend-radar

3.4 配置详解:打造个性化信息雷达

TrendRadar 的核心配置主要通过两个文件实现:

config.yaml 主要配置

app:
  version_check_url: "https://.../version"
  show_version_update: true

crawler:
  request_interval: 1000
  enable_crawler: true
  use_proxy: false

report:
  mode: "daily"  # daily | incremental | current
  rank_threshold: 5

notification:
  enable_notification: true
  push_window:
    enabled: false
    time_range:
      start: "20:00"
      end: "22:00"
    once_per_day: true

weight:
  rank_weight: 0.6
  frequency_weight: 0.3
  hotness_weight: 0.1

frequency_words.txt 关键词配置

# 普通词:出现一个就算命中
# 必须词(+):所有必须词都出现才算
# 过滤词(!):出现就直接排除

iPhone
华为
OPPO
+发布

A股
上证
深证
+涨跌
!预测

世界杯
欧洲杯
亚洲杯
+比赛

四、使用指南:从入门到精通

4.1 三种推送模式的选择

TrendRadar 提供三种推送模式,适应不同用户需求:

推送模式描述适用场景推送频率
daily(当日汇总)每天汇总当日热点企业管理者/普通用户,日报总结每日一次
current(实时榜单)推送当前时刻的热榜自媒体/创作者,热点追踪按计划定时
incremental(增量监控)只推送新增热点投资人/交易员,高频监控高频率监控

4.2 关键词策略配置技巧

有效的关键词配置是发挥 TrendRadar 威力的关键:

基础关键词策略

  • 行业监控:公司名、产品名、技术术语
  • 竞品监控:竞争对手品牌词、产品词
  • 风险监控:负面词汇、危机相关关键词

高级匹配技巧

  • 组合使用必须词+发布 +新品 确保捕捉产品发布信息
  • 排除干扰信息科技 !娱乐圈 过滤不相关领域
  • 多维度覆盖:同一主题的不同表述方式

4.3 推送渠道配置实战

企业微信配置为例,详细步骤:

  1. 创建企业微信群聊
  2. 添加群机器人
    • 点击群聊右上角菜单 → 添加群机器人 → 新建
    • 记录 Webhook URL
  3. 配置 TrendRadar
    • .env 文件中设置 WEWORK_WEBHOOK_URL
    • 重启 Docker 服务

4.4 高级功能:AI智能分析

TrendRadar 的 AI 智能分析功能基于 MCP 协议,可以通过以下方式使用:

  1. 启动 MCP 服务器

    python mcp_server.py
    
  2. 配置 AI 客户端

    • 支持 Claude、Cursor、Cherry Studio 等
    • 配置连接至 TrendRadar MCP 服务器
  3. 使用自然语言查询

    • "最近一周关于 AI 技术的趋势如何?"
    • "对比华为和小米的产品发布热度"
    • "分析科技领域的情绪倾向"

五、企业实战案例:多场景应用解析

5.1 投资金融行业:实时监控市场动态

挑战:投资者需要实时掌握市场动态、行业政策和公司新闻,但传统方式效率低下,容易错过关键信号。

解决方案

  • 关键词配置: A股 港股 美股 +涨跌 央行 +政策 !娱乐
  • 推送模式:增量监控模式,每30分钟执行一次
  • 推送渠道:企业微信 + 邮件备份

成效:实时追踪股市、行业动态,避免错过关键信号。

5.2 内容创作领域:热点捕捉与选题策划

挑战:自媒体人需要第一时间掌握爆款选题,但人工刷榜耗时耗力,且容易遗漏跨平台趋势。

解决方案

  • 关键词配置: 爆款 viral +方法 教程 +步骤 行业报告 +下载
  • 推送模式:当前榜单模式,捕捉当下热榜趋势
  • 特殊技巧:利用必须词捕捉完整教程,利用排除词过滤低质内容

成效:自媒体人第一时间掌握爆款选题,快速生成选题灵感。

5.3 企业公关:品牌舆情监控与危机预警

挑战:企业公关需要快速捕捉潜在危机话题,传统监控工具滞后性明显。

解决方案

  • 品牌关键词:公司名、产品名、高管名
  • 风险关键词投诉质量问题裁员法律诉讼
  • 推送策略:增量监控 + 即时推送,设立24小时监控机制

成效:企业公关可快速捕捉潜在危机话题,危机响应速度提升3倍。

六、技术架构深度解析

6.1 系统架构设计

TrendRadar 采用单体应用架构,所有功能集中在 main.py 文件中,这种设计便于用户快速部署和升级。系统整体架构可以分为以下几个核心模块:

TrendRadar/
├── 配置管理模块 (config/*.yaml, config/frequency_words.txt)
├── 数据获取模块 (DataFetcher)
├── 数据处理模块 (数据解析、统计分析)
├── 报告生成模块 (HTML/Markdown 生成)
├── 通知推送模块 (多渠道适配器)
├── AI 分析模块 (MCP 服务器)
└── 自动化部署 (GitHub Actions)

6.2 核心技术栈

技术领域使用技术说明
开发语言Python 3.x主要编程语言
配置管理YAML配置文件格式,支持复杂配置结构
网络请求requestsHTTP 客户端库,支持代理和重试机制
数据处理pytz时区处理,支持北京时间标准化
通知服务Webhook API支持企业微信、飞书、钉钉等多种平台
AI 协议MCP (Model Context Protocol)标准化的 AI 工具调用协议
部署平台GitHub Actions自动化运行和版本管理

6.3 数据流与处理流程

TrendRadar 的数据处理流程可以概括为以下几个阶段:

  1. 数据采集:通过 DataFetcher 从各平台 API 获取原始数据
  2. 数据解析:提取关键信息并标准化处理
  3. 关键词匹配:应用用户配置的筛选规则
  4. 权重计算:基于排名、频次和热度计算综合权重
  5. 报告生成:生成 HTML 和 Markdown 格式的报告
  6. 消息推送:通过配置的渠道推送最终结果

七、总结:为什么TrendRadar值得使用?

7.1 核心优势总结

TrendRadar 作为一个开源热点聚合工具,在以下几个方面表现突出:

  1. 信息过滤精准性:三层关键词配置(基础词+必须词+过滤词),精准屏蔽广告、谣言等噪音
  2. 部署便捷性:支持 GitHub Pages 和 Docker 两种部署方式,适合不同技术水平的用户
  3. 使用灵活性:三种推送模式满足不同场景需求
  4. 功能扩展性:基于 MCP 协议的 AI 分析功能,支持自然语言交互
  5. 成本优势:完全开源免费,相比商业舆情监控工具具有明显价格优势

7.2 适用人群分析

TrendRadar 特别适合以下人群使用:

  • 投资者和交易员:实时监控市场动态和公司新闻
  • 内容创作者和自媒体人:捕捉热点趋势和爆款选题
  • 企业公关和品牌团队:监控品牌声誉和舆情风险
  • 行业研究人员:跟踪特定领域的技术和发展动态
  • 普通信息消费者:从信息过载中解脱,获取个性化资讯

7.3 未来发展趋势

随着 AI 技术的发展,TrendRadar 这类信息聚合工具的未来可能朝着以下方向演进:

  • 多模态融合:结合视频逐帧分析、语音情感识别,提升信息完整性
  • 预测模型普及:引入强化学习,实现热点传播路径的精准模拟
  • 语义理解增强:更好理解反讽、俚语等复杂表达
  • 个性化推荐深化:基于用户行为反馈持续优化推荐算法

项目地址github.com/sansan0/Tre… 在线体验:通过 GitHub Pages 部署后即可访问个性化热点页面

无论是个人用户还是企业团队,TrendRadar 都能帮助您从繁杂的信息洪流中抽身而出,精准捕捉真正有价值的内容。立即尝试部署属于您自己的信息雷达,开启高效的信息获取新时代!