TrendRadar:开源趋势监控工具

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

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

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

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

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

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

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

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

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

2.1 全网热点聚合能力

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

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

2.2 智能内容筛选系统

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

python 复制代码
# 智能关键词匹配系统示例
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 的独特之处在于它不简单按"抓到的时间顺序"或"平台原始排名"展示新闻,而是引入自定义的综合权重算法:

python 复制代码
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 是最可靠的部署方式:

步骤一:获取部署文件

bash 复制代码
# 创建目录结构
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/

步骤二:配置推送渠道

bash 复制代码
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          # 启动时立即执行一次

步骤三:启动服务

bash 复制代码
# 拉取最新镜像并启动
docker-compose pull
docker-compose up -d

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

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

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

config.yaml 主要配置

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 关键词配置

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

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 服务器

    bash 复制代码
    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 文件中,这种设计便于用户快速部署和升级。系统整体架构可以分为以下几个核心模块:

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

6.2 核心技术栈

技术领域 使用技术 说明
开发语言 Python 3.x 主要编程语言
配置管理 YAML 配置文件格式,支持复杂配置结构
网络请求 requests HTTP 客户端库,支持代理和重试机制
数据处理 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 都能帮助您从繁杂的信息洪流中抽身而出,精准捕捉真正有价值的内容。立即尝试部署属于您自己的信息雷达,开启高效的信息获取新时代!

相关推荐
GISer_Jing1 小时前
BOSS上AIAgent|前端AI所需要技能
前端·人工智能·ai·前端框架
西洼工作室1 小时前
UniApp开发全攻略:从生命周期到路由传值
前端·javascript·uni-app
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-05-17
前端·人工智能·chatgpt·html
Cobyte1 小时前
Agent Skills 系统的本质原理
前端·aigc·ai编程
星恒随风1 小时前
四天学完前端基础三件套(JavaScript webAPI篇)
开发语言·前端·javascript
IT_陈寒1 小时前
Redis突然吃掉所有内存,我的服务差点挂了
前端·人工智能·后端
2601_958492551 小时前
Behavioral Analysis of HTML5 Trivia Integration
前端·html·html5
sakiko_2 小时前
Swift/UIkit学习笔记27-模块管理,发送位置信息
前端·笔记·学习·ios·swift·uikit
hhb_6182 小时前
Ruby核心技术难点梳理与实战应用案例解析
服务器·前端·ruby