XT

xu756/trendradar

Developer tools
33 stars 0 forks 品質 65 トレンド 65

🎯 告别信息过载,AI 助你看懂新闻资讯热点,简单的舆情监控分析 - 多平台热点聚合+基于 MCP 的AI分析工具。监控35个平台(抖音、知乎、B站、华尔街见闻、财联社等),智能筛选+自动推送+AI对话分析(用自然语言深度挖掘新闻:趋势追踪、情感分析、相似检索等13种工具)。支持企业微信/飞书/钉钉/Telegram/邮件/ntfy推送,30秒网页部署,1分钟手机通知,无需编程。

概要

- 感谢** 的贡献者,你们的每一条反馈让项目更加完善😉; - 感谢** 的观众们, 你所欲也, 我所欲也,两者得兼😍是对开源精神最好的支持; - 感谢** 的读者们,你们的留言、点赞、分享和推荐等积极互动让内容更有温度😎。 - 知乎 - 抖音 - bilibili 热搜 - 华尔街见闻 - 贴吧 - 百度热搜 - 财联社热门 - 澎湃新闻 - 凤凰网 - 今日头条 - 微博 本项目的资讯数据来源于 newsnow ,你可以点击网站,点击[更多],查看是否有你想要的平台。 具体添加可访问 项目源代码,根据里面的文件名,在 config/config.yaml 文件中修改 platforms 配置: - : 设定推送时间范围(如 09:00-18:00 或 20:00-22:00),只在指定时间内推送 - : - 窗口内多次推送: 时间窗口内每次执行都推送 - 每天仅推送一次: 时间窗口内只推送一次(适合当日汇总或当前榜单模式) - : - 工作时间推送: 只在工作日 09:00-18:00 接收消息 - 晚间汇总推送: 希望在晚上固定时间(如 20:00-22:00)收到汇总 - 避免打扰: 防止非工作时间收到推送通知 提示: 此功能默认关闭,需在 config/config.yaml 中手动启用 push_window.enabled - 支持普通词、必须词(+)、过滤词(!)三种语法,见【frequency_words.txt 配置教程】 - 词组化管理,独立统计不同主题热点 在 frequency_words.txt 文件中配置监控的关键词,支持三种语法和词组功能。

README

本项目以轻量,易部署为目标

📑 快速导航

  • 感谢耐心反馈 bug 的贡献者,你们的每一条反馈让项目更加完善😉;
  • 感谢为项目点 star 的观众们,fork 你所欲也,star 我所欲也,两者得兼😍是对开源精神最好的支持;
  • 感谢关注公众号 的读者们,你们的留言、点赞、分享和推荐等积极互动让内容更有温度😎。

✨ 核心功能

全网热点聚合

  • 知乎
  • 抖音
  • bilibili 热搜
  • 华尔街见闻
  • 贴吧
  • 百度热搜
  • 财联社热门
  • 澎湃新闻
  • 凤凰网
  • 今日头条
  • 微博

默认监控 11 个主流平台,也可自行增加额外的平台

智能推送策略

三种推送模式

模式 适用人群 推送时机 显示内容 适用场景
当日汇总daily 📋 企业管理者/普通用户 按时推送(默认每小时推送一次) 当日所有匹配新闻+ 新增新闻区域 日报总结全面了解当日热点趋势
当前榜单current 📰 自媒体人/内容创作者 按时推送(默认每小时推送一次) 当前榜单匹配新闻+ 新增新闻区域 实时热点追踪了解当前最火的内容
增量监控incremental 📈 投资者/交易员 有新增才推送 新出现的匹配频率词新闻 避免重复信息干扰高频监控场景

附加功能 - 推送时间窗口控制(可选):

此功能独立于上述三种推送模式,可与任意模式搭配使用:

  • 时间窗口限制: 设定推送时间范围(如 09:00-18:00 或 20:00-22:00),只在指定时间内推送
  • 推送频率控制:
    • 窗口内多次推送: 时间窗口内每次执行都推送
    • 每天仅推送一次: 时间窗口内只推送一次(适合当日汇总或当前榜单模式)
  • 典型场景:
    • 工作时间推送: 只在工作日 09:00-18:00 接收消息
    • 晚间汇总推送: 希望在晚上固定时间(如 20:00-22:00)收到汇总
    • 避免打扰: 防止非工作时间收到推送通知

提示: 此功能默认关闭,需在 config/config.yaml 中手动启用 push_window.enabled

精准内容筛选

设置个人关键词(如:AI、比亚迪、教育政策),只推送相关热点,过滤无关信息

  • 支持普通词、必须词(+)、过滤词(!)三种语法,见【frequency_words.txt 配置教程】
  • 词组化管理,独立统计不同主题热点

也可以不做筛选,完整的推送所有热点,具体见【历史更新】中的 v2.0.1

热点趋势分析

实时追踪新闻热度变化,让你不仅知道"什么在热搜",更了解"热点如何演变"

  • 时间轴追踪:记录每条新闻从首次出现到最后出现的完整时间跨度
  • 热度变化:统计新闻在不同时间段的排名变化和出现频次
  • 新增检测:实时识别新出现的热点话题,用🆕标记第一时间提醒
  • 持续性分析:区分一次性热点话题和持续发酵的深度新闻
  • 跨平台对比:同一新闻在不同平台的排名表现,看出媒体关注度差异

不再错过重要新闻的完整发展过程,从话题萌芽到高峰热议,全程掌握

个性化热点算法

不再被各个平台的算法牵着走,TrendRadar 会重新整理全网热搜:

  • 看重排名高的新闻(占60%):各平台前几名的新闻优先显示
  • 关注持续出现的话题(占30%):反复出现的新闻更重要
  • 考虑排名质量(占10%):不仅多次出现,还经常排在前列

把分散在各个平台的热搜合并起来,按照你关心的热度重新排序,这三个比例可以选择适合自己的场景进行调整

多渠道实时推送

支持企业微信(+ 微信推送方案)、飞书钉钉Telegram邮件ntfy,消息直达手机和邮箱

多端适配

  • GitHub Pages:自动生成精美网页报告,PC/移动端适配
  • Docker部署:支持多架构容器化运行
  • 数据持久化:HTML/TXT多格式历史记录保存

AI 智能分析(v3.0.0 新增)

基于 MCP (Model Context Protocol) 协议的 AI 对话分析系统,让你用自然语言深度挖掘新闻数据

  • 对话式查询:用自然语言提问,如"查询昨天知乎的热点"、“分析比特币最近的热度趋势”
  • 13 种分析工具:涵盖基础查询、智能检索、趋势分析、数据洞察、情感分析等
  • 多客户端支持:Cherry Studio(GUI 配置)、Claude Desktop、Cursor、Cline 等
  • 深度分析能力
    • 话题趋势追踪(热度变化、生命周期、爆火检测、趋势预测)
    • 跨平台数据对比(活跃度统计、关键词共现)
    • 智能摘要生成、相似新闻查找、历史关联检索

告别手动翻阅数据文件,AI 助手帮你秒懂新闻背后的故事

零技术门槛部署

GitHub 一键 Fork 即可使用,无需编程基础。

30秒部署: GitHub Pages(网页浏览)支持一键保存成图片,随时分享给他人

1分钟部署: 企业微信(手机通知)

💡 提示: 想要实时更新的网页版?fork 后,进入你的仓库 Settings → Pages,启用 GitHub Pages。效果预览

减少 APP 依赖

从"被算法推荐绑架"变成"主动获取自己想要的信息"

适合人群: 投资者、自媒体人、企业公关、关心时事的普通用户

典型场景: 股市投资监控、品牌舆情追踪、行业动态关注、生活资讯获取

Github Pages 效果(手机端适配、邮箱推送效果) 飞书推送效果

📝 更新日志

升级说明

  • 提示:不要通过 Sync fork 更新本项目, 建议查看【历史更新】,明确具体的【升级方式】和【功能内容】
  • 小版本更新:从 v2.x 升级到 v2.y, 用本项目的 main.py 代码替换你 fork 仓库中的对应文件
  • 大版本升级:从 v1.x 升级到 v2.y, 建议删除现有 fork 后重新 fork,这样更省力且避免配置冲突

2025/11/12 - v3.0.5

  • 修复邮件发送 SSL/TLS 端口配置逻辑错误
  • 优化邮箱服务商(QQ/163/126)默认使用 465 端口(SSL)
  • 新增 Docker 环境变量支持:核心配置项(enable_crawlerreport_modepush_window 等)支持通过环境变量覆盖,解决 NAS 用户修改配置文件不生效的问题(详见 🐳 Docker 部署 章节)

2025/10/26 - mcp-v1.0.1

MCP 模块更新:

  • 修复日期查询参数传递错误
  • 统一所有工具的时间参数格式

🚀 快速开始

配置完成后,新闻数据一小时后才会更新,如想加快,可参照【第4步】手动测试配置效果

  1. Fork 本项目到你的 GitHub 账户

    • 点击本页面右上角的"Fork"按钮
  2. 设置 GitHub Secrets(选择你需要的平台):

    在你 Fork 后的仓库中,进入 Settings > Secrets and variables > Actions > New repository secret,然后根据需要配置以下任一或多个通知平台:

    可以同时配置多个平台,系统会向所有配置的平台发送通知。

    效果类似下图,一个 name 对应一个 secret,保存完就行,你重新编辑看不到 secret 是正常情况。


    推荐选择:

    用户类型 推荐方案 理由
    普通用户 方式一(免费) 简单快速,够用
    技术用户 方式二(自托管) 完全控制,无限制
    高频用户 方式三(付费) 这个自己去官网看吧

    相关链接:

  3. 配置说明::

    注意:建议只调整文档中明确说明的配置项,其他选项主要供作者开发时测试使用

  4. 手动测试新闻推送

    我这里是拿我的项目举例,你要去你fork的项目做测试

    1. 进入 Actionshttps://github.com/sansan0/TrendRadar/actions
    2. 找到 “Hot News Crawler” 的点进去,如果看不到该字样,那么参照#109解决
    3. 点击 “Run workflow” 按钮运行,等待 1 分钟左右数据到你手机上

🐳 Docker 部署

方式一:快速体验(一行命令)

Linux/macOS 系统:

# 创建配置目录并下载配置文件
mkdir -p config output
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/

或者手动创建

  1. 在当前目录创建 config 文件夹
  2. 下载配置文件:

完成后的目录结构应该是:

当前目录/
└── config/
    ├── config.yaml
    └── frequency_words.txt
docker run -d --name trend-radar \
  -v ./config:/app/config:ro \
  -v ./output:/app/output \
  -e FEISHU_WEBHOOK_URL="你的飞书webhook" \
  -e DINGTALK_WEBHOOK_URL="你的钉钉webhook" \
  -e WEWORK_WEBHOOK_URL="你的企业微信webhook" \
  -e TELEGRAM_BOT_TOKEN="你的telegram_bot_token" \
  -e TELEGRAM_CHAT_ID="你的telegram_chat_id" \
  -e EMAIL_FROM="你的发件邮箱" \
  -e EMAIL_PASSWORD="你的邮箱密码或授权码" \
  -e EMAIL_TO="收件人邮箱" \
  -e CRON_SCHEDULE="*/30 * * * *" \
  -e RUN_MODE="cron" \
  -e IMMEDIATE_RUN="true" \
  wantcat/trendradar:latest

方式二:使用 docker-compose(推荐)

  1. 创建项目目录和配置:
    # 创建目录结构
    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
    wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/docker/docker-compose.yml
    

完成后的目录结构应该是:

当前目录/
├── config/
│   ├── config.yaml
│   └── frequency_words.txt
└── docker/
    ├── .env
    └── docker-compose.yml
  1. 配置文件说明:

    • config/config.yaml - 应用主配置(报告模式、推送设置等)
    • config/frequency_words.txt - 关键词配置(设置你关心的热点词汇)
    • .env - 环境变量配置(webhook URLs 和定时任务)

    ⚙️ 环境变量覆盖机制(v3.0.5+)

    如果你在 NAS 或其他 Docker 环境中遇到修改 config.yaml 后配置不生效的问题,可以通过环境变量直接覆盖配置:

    环境变量 对应配置 示例值 说明
    ENABLE_CRAWLER crawler.enable_crawler true / false 是否启用爬虫
    ENABLE_NOTIFICATION notification.enable_notification true / false 是否启用通知
    REPORT_MODE report.mode all / filtered 报告模式
    PUSH_WINDOW_ENABLED notification.push_window.enabled true / false 推送时间窗口开关
    PUSH_WINDOW_START notification.push_window.time_range.start 08:00 推送开始时间
    PUSH_WINDOW_END notification.push_window.time_range.end 22:00 推送结束时间
    FEISHU_WEBHOOK_URL notification.webhooks.feishu_url https://... 飞书 Webhook

    配置优先级:环境变量 > config.yaml

    使用方法

    • 修改 .env 文件,取消注释并填写需要的配置
    • 或在 NAS/群晖 Docker 管理界面的"环境变量"中直接添加
    • 重启容器后生效:docker-compose restart

    验证配置

    docker logs trend-radar | grep "配置来源\|来源:"
    

    输出示例:

    爬虫状态: 已启用 (来源: 环境变量)
    报告模式: filtered (来源: 环境变量)
    通知渠道配置来源: 飞书(环境变量), 邮件(配置文件)
    
  2. 启动服务:

    # 拉取最新镜像并启动
    docker-compose pull
    docker-compose up -d
    
  3. 查看运行状态:

    # 查看日志
    docker logs -f trend-radar
    
    # 查看容器状态
    docker ps | grep trend-radar
    

方式三:本地构建(开发者选项)

如果需要自定义修改代码或构建自己的镜像:

# 克隆项目
git clone https://github.com/sansan0/TrendRadar.git
cd TrendRadar

# 修改配置文件
vim config/config.yaml
vim config/frequency_words.txt

# 使用构建版本的 docker-compose
cd docker
cp docker-compose-build.yml docker-compose.yml

# 构建并启动
docker-compose build
docker-compose up -d

镜像更新

# 方式一:手动更新
docker pull wantcat/trendradar:latest
docker-compose down
docker-compose up -d

# 方式二:使用 docker-compose 更新
docker-compose pull
docker-compose up -d

服务管理命令

# 查看运行状态
docker exec -it trend-radar python manage.py status

# 手动执行一次爬虫
docker exec -it trend-radar python manage.py run

# 查看实时日志
docker exec -it trend-radar python manage.py logs

# 显示当前配置
docker exec -it trend-radar python manage.py config

# 显示输出文件
docker exec -it trend-radar python manage.py files

# 查看帮助信息
docker exec -it trend-radar python manage.py help

# 重启容器
docker restart trend-radar

# 停止容器
docker stop trend-radar

# 删除容器(保留数据)
docker rm trend-radar

数据持久化

生成的报告和数据默认保存在 ./output 目录下,即使容器重启或删除,数据也会保留。

故障排查

# 检查容器状态
docker inspect trend-radar

# 查看容器日志
docker logs --tail 100 trend-radar

# 进入容器调试
docker exec -it trend-radar /bin/bash

# 验证配置文件
docker exec -it trend-radar ls -la /app/config/

🤖 AI 智能分析部署

TrendRadar v3.0.0 新增了基于 MCP (Model Context Protocol) 的 AI 分析功能,让你可以通过自然语言与新闻数据对话,进行深度分析。使用 AI 功能 的最佳前提是已使用本项目至少运行一天(积累新闻数据)

1. 快速部署

Cherry Studio 提供 GUI 配置界面, 5 分钟快速部署, 复杂的部分是一键安装的。

图文部署教程:现已更新到我的公众号,回复 “mcp” 即可

详细部署教程README-Cherry-Studio.md

2. 学习与 AI 对话的姿势

详细对话教程README-MCP-FAQ.md

提问效果

实际不建议一次性问多个问题。如果你选择的 ai 模型连下图的按顺序调用都无法做到,建议换一个。

🔌 MCP 客户端

TrendRadar MCP 服务支持标准的 Model Context Protocol (MCP) 协议,可以接入各种支持 MCP 的 AI 客户端进行智能分析。

支持的客户端

注意事项

  • /path/to/TrendRadar 替换为你的项目实际路径
  • Windows 路径使用双反斜杠:C:\\Users\\YourName\\TrendRadar
  • 保存后记得重启

☕问题答疑与1元点赞

心意到就行,收到的点赞用于提高开发者开源的积极性。点赞已收录于致谢名单
提问或者留言前,建议先搜索已有的 issues 列表,或者浏览微信公众号文章留言区(找评论超过 10 的与本项目有关的文章)。

  • GitHub Issues:适合针对性强的解答。提问时请提供完整信息(截图、错误日志、系统环境等)。
  • 公众号交流:适合快速咨询。建议优先在相关文章下的公共留言区交流,如私信,请文明礼貌用语😉
公众号关注 微信点赞 支付宝点赞

常见问题

项目相关

4 篇文章

AI 开发

  • 如果你有小众需求,完全可以基于我的项目自行开发,零编程基础的也可以试试
  • 我所有的开源项目或多或少都使用了自己写的AI辅助软件来提升开发效率,这款工具已开源
  • 核心功能:迅速筛选项目代码喂给AI,你只需要补充个人需求即可
  • 项目地址https://github.com/sansan0/ai-code-context-helper

其余项目

📍 毛主席足迹地图 - 交互式动态展示1893-1976年完整轨迹。欢迎诸位同志贡献数据

哔哩哔哩(bilibili)评论区数据可视化分析软件

本项目流程图

flowchart TD
    A[👤 用户开始] --> B{🚀 选择部署方式}
    
    B -->|云端部署| C1[🍴 Fork 项目到 GitHub]
    B -->|本地部署| C2[🐳 Docker 部署]
    
    C1 --> D[⚙️ 配置通知渠道可同时配置多个]
    C2 --> D
    
    D --> E[选择通知方式:📱企业微信 💬飞书 🔔钉钉📟Telegram 📧邮件]
    
    E --> F[🔑 填写通知参数GitHub Secrets 或环境变量]
    
    F --> G[📝 配置关键词config/frequency_words.txt普通词/必须词+/过滤词!]
    
    G --> H[🎯 选择运行模式config/config.yaml]
    
    H --> H1[📋 daily - 当日汇总定时推送所有匹配新闻]
    H --> H2[📰 current - 当前榜单定时推送最新榜单]
    H --> H3[📈 incremental - 增量监控仅推送新增内容]
    
    H1 --> I[可选:推送时间窗口控制⏰ 限制推送时间范围]
    H2 --> I
    H3 --> I
    
    I --> J[✅ 配置完成]
    
    J --> K[🤖 系统自动运行]
    
    K --> L[🕷️ 爬取11+平台热点]
    L --> M[🔍 关键词筛选]
    M --> N[⚖️ 权重算法排序排名60% + 频次30% + 热度10%]
    N --> O[📊 生成报告HTML网页 + 推送消息]
    O --> P[📱 多渠道推送通知]
    
    P --> Q[🎉 持续接收精准推送告别信息过载]
    
    style A fill:#e3f2fd
    style B fill:#f3e5f5
    style D fill:#fff3e0
    style F fill:#fff9c4
    style G fill:#e8f5e9
    style H fill:#e0f2f1
    style I fill:#fce4ec
    style O fill:#e1bee7
    style Q fill:#c8e6c9

📄 许可证

GPL-3.0 License


View this README on GitHub

インストール

docker run -d \

設定

{ "mcpServers": { "trendradar": { "command": "uv", "args": [ "--directory", "/path/to/TrendRadar", "run", "python", "-m", "mcp_server.server" ], "env": {}, "disabled": false, "alwaysAllow": [] } } }