你是否经常觉得每天刷新闻太费时间,却又担心错过重要信息?比如作为投资者,你想及时跟踪股市动态;作为内容创作者,你需要把握实时趋势;或者只是普通用户,希望只看自己关心的内容。TrendRadar 就是一个这样的工具,它能聚合多个平台的热点,帮助你过滤并推送真正相关的新闻。下面,我来一步步解释这个工具是怎么工作的,以及如何设置和使用它。我们会从基础功能开始聊起,然后逐步深入到配置和部署细节。如果你有具体问题,比如“怎么设置关键词?”或者“Docker 部署需要注意什么?”,我会尽量在文章中直接回答。

TrendRadar 工具概述

TrendRadar 是一个开源项目,旨在帮助用户高效获取全网热点信息。它以轻量和易部署为目标,主要通过 GitHub 来运行。你可以想象它像一个个人热点雷达:扫描多个新闻平台,筛选出匹配你兴趣的内容,然后通过手机推送或网页报告呈现。项目版本目前是 v2.1.2,支持多种通知渠道,比如企业微信、Telegram、钉钉和飞书。

为什么选择这个工具?因为它能让你从被动刷屏转向主动监控。举例来说,如果你关心 AI 相关新闻,它会自动聚合头条、百度热搜等平台的条目,只推送包含“AI”或相关词的热点。这样,你就不用一个个 App 去翻看了。项目还强调隐私和自定义:所有数据处理都在你的仓库中进行,不会上传到第三方。

项目有一些基本统计,比如 GitHub Stars 和 Forks,但这些只是社区反馈的指标。如果你 fork 了项目,可以看到它如何通过 GitHub Actions 自动化运行。接下来,我们聊聊它的核心功能。

核心功能详解

TrendRadar 的功能围绕热点聚合、筛选和推送展开。让我们分解来看。

全网热点聚合

工具默认监控 11 个主流平台,包括:

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

这些平台覆盖了新闻、社交和视频领域。如果你问:“能添加更多平台吗?”是的,可以自定义监控平台,我稍后会解释怎么做。它使用一个外部 API(来自 newsnow 项目)来获取数据,确保信息实时更新。

智能推送策略

推送是工具的亮点之一,有三种模式可选,适合不同用户需求:

模式 描述 适用人群
incremental 及时获取新增资讯,只在有新热点时推送 投资者或交易员,需要实时响应
current 掌握实时热点趋势,显示当前榜单 自媒体人或内容创作者,关注当下流行
daily 定时获取完整日报,汇总当日所有匹配 企业管理者或普通用户,适合每日回顾

此外,还有静默推送模式:你可以设置时间窗口,比如只在 9:00-18:00 内推送。这避免了半夜打扰。时间范围内,你可以选择每次执行都推送,还是只推送一次。

举个例子,如果你设置 incremental 模式,工具会监控新出现的新闻,并在有匹配时立即通知。推送内容包括热度等级(如 🔥 表示高热度)、匹配数量和时间范围。

精准内容筛选

筛选基于关键词文件 frequency_words.txt。你可以设置普通词、必须词(用 + 前缀)和过滤词(用 ! 前缀)。比如:

  • 普通词:AI、比亚迪
  • 必须词:+发布(标题必须包含这个词)
  • 过滤词:!广告(排除包含这个词的新闻)

关键词用空行分隔成组,每个组独立统计。这让筛选更灵活。如果你问:“怎么避免无关新闻?”就是通过过滤词,比如 !水果 来排除苹果手机外的无关条目。

工具还会统计热点词汇,比如 “AI ChatGPT : 2 条”,并显示来源、排名和出现时间。新热点用 🆕 标记。

个性化热点算法

不同于平台自己的算法,TrendRadar 重新排序热点,基于三个权重:

  • 排名权重(默认 60%):优先显示各平台前几名
  • 频率权重(默认 30%):反复出现的更重要
  • 热度权重(默认 10%):考虑排名质量

你可以调整这些比例。比如,如果你更在意持续话题,把频率权重调到 50%。这让输出更符合你的偏好。

多渠道实时推送

支持企业微信、飞书、钉钉和 Telegram。你可以同时配置多个渠道。推送格式清晰,包括热点统计、新增新闻和更新时间。

这里是推送效果的示例:

飞书推送效果

网页版通过 GitHub Pages 生成,支持 PC 和手机适配:

Github Pages效果

数据还会保存为 HTML 和 TXT 文件,便于回顾。

多端适配和零门槛部署

工具支持 GitHub Pages(网页浏览)和 Docker(容器运行)。部署简单:fork 项目,设置 Secrets,就能运行。适合没有编程基础的用户。

典型场景:股市监控、舆情追踪或日常资讯获取。

如何设置和部署 TrendRadar

现在,我们来一步步看怎么上手。假设你是个新手,我会详细解释每个步骤。

步骤 1: Fork 项目

  1. 访问 GitHub 上的 TrendRadar 项目页面。
  2. 点击右上角的 “Fork” 按钮,将项目复制到你的账户。
  3. 这会创建一个你的版本仓库,你的所有配置都在这里进行。

Fork 后,如果你想实时网页版,进入仓库 Settings > Pages,启用 GitHub Pages。预览效果类似 https://sansan0.github.io/TrendRadar/。

步骤 2: 设置 GitHub Secrets

Secrets 用于存储敏感信息,如 webhook URLs。进入仓库 Settings > Secrets and variables > Actions > New repository secret。

根据你的通知渠道,添加对应 Secret:

  • 企业微信

    • 名称:WEWORK_WEBHOOK_URL
    • 值:机器人 Webhook 地址
    • 如何获取:打开企业微信群聊 > 右上角 … > 群机器人 > 添加新建 > 复制 Webhook。
  • 飞书

    • 名称:FEISHU_WEBHOOK_URL
    • 值:机器人 Webhook 地址
    • 如何获取:浏览器打开 botbuilder.feishu.cn > 新建机器人 > 设置流程(包括 Webhook 触发和发送消息) > 复制地址。详细步骤包括参数 JSON 配置和群组选择。
  • 钉钉

    • 名称:DINGTALK_WEBHOOK_URL
    • 值:机器人 Webhook 地址
    • 如何获取:PC 端群设置 > 机器人 > 添加自定义 > 设置关键词 “热点” > 复制 URL。
  • Telegram

    • 名称:TELEGRAM_BOT_TOKEN 和 TELEGRAM_CHAT_ID
    • 值:Bot Token 和 Chat ID
    • 如何获取:用 @BotFather 创建 Bot > 获取 Token;用 getUpdates 或 @userinfobot 获取 ID。

你可以添加多个,工具会向所有渠道推送。

步骤 3: 配置报告模式和关键词

编辑 config/config.yaml:

  • report.mode:选择 daily、current 或 incremental。
  • silent_push.enabled:true/false,启用静默模式。
  • silent_push.time_range:如 “09:00-18:00″。
  • weight:调整 rank_weight、frequency_weight、hotness_weight(总和为 1.0)。

编辑 config/frequency_words.txt:

  • 添加关键词,按优先级排序。
  • 用空行分词组。
  • 示例:

    AI
    ChatGPT
    +技术
    !广告
    
    比亚迪
    特斯拉
    +销量
    

如果文件为空,会推送所有新闻,但受推送限制,建议减少平台或用网页版。

步骤 4: 自定义监控平台

在 config.yaml 的 platforms 部分添加:

  • id:平台代码(如 “wallstreetcn-hot”)
  • name:显示名称

来源基于 newsnow 项目,你可以查看其源代码添加更多。

步骤 5: 部署选项

  • GitHub Pages:自动生成报告,适合网页浏览。
  • Docker

    • 快速方式:用 docker run 命令,挂载 config 和 output 目录,设置环境变量如 CRON_SCHEDULE=”*/30 * * * *”(每 30 分钟运行)。
    • docker-compose:下载 .env 和 docker-compose.yml,编辑后 docker-compose up -d。
    • 管理命令:如 docker logs -f trend-radar 查看日志。

镜像:wantcat/trendradar:latest,支持多架构。

如果你问:“Docker 怎么更新?”用 docker-compose pull && docker-compose up -d。

更新日志和升级指南

项目定期更新,最新是 v2.1.2(2025/09/13),解决了钉钉推送容量问题(分批推送)。

历史更新包括:

  • v2.1.1(2025/09/04):修复 Docker 架构问题,发布官方镜像。
  • v2.1.0(2025/08/30):优化推送逻辑,添加时间窗口。
  • v2.0.4(2025/08/27):提醒保护 webhook 安全。
  • v2.0.3(2025/08/06):优化网页移动端。
  • v2.0.2(2025/07/28):代码重构。
  • v2.0.1(2025/07/27):修复空关键词推送和 Docker 脚本问题。
  • v2.0.0(2025/07/17):配置重构,支持三种模式和 Docker。
  • v1.4.1(2025/07/09):增量推送开关,修复符号问题。
  • v1.3.0(2025/06/23):拆分推送长消息。
  • v1.2.1(2025/06/21):更新 workflow 文件。
  • v1.2.0(2025/06/19):支持多渠道。
  • v1.1.0(2025/06/18):权重排序,优化文档。
  • v1.0.0(2025/06/16):版本更新提示。
  • 更早:新增标记、必须词、跳转链接等。

升级时:

  • 小版本:替换 main.py。
  • 大版本:重新 fork。
  • 避免 Sync fork,使用手动更新。
  • 如果有 webhook 暴露,重新生成。

新功能可能包括 AI 分析,但目前未实现。

推送格式和示例

推送消息结构清晰:

  • 热点词汇统计:按组显示,带热度图标(如 🔥 [1/3] AI ChatGPT : 2 条)。
  • 新闻详情:来源、🆕 标记、排名、时间、频率。
  • 新增热点汇总。
  • 更新时间。

格式元素表格:

元素 示例 含义 说明
热度图标 🔥 [1/3] 热度等级 🔥 (≥10条), 📈 (5-9条), 📌 (<5条)
词组 AI ChatGPT 关键词组 从配置文件
匹配数 : 2 条 总匹配 该组新闻数
来源 [百度热搜] 平台 新闻来源
新增 🆕 新热点 本轮首次
排名 [1] 高排名 加粗显示
时间 – 09时15分 首次出现 单次时间
范围 [08时30分 ~ 10时45分] 持续期 从首到尾
频率 (3次) 出现次数 总计

示例消息如开头所述。

学习交流和支持

项目鼓励 issues 反馈或公众号留言。致谢包括数据支持(newsnow)、推广(小众软件、LinuxDo、阮一峰周刊)和资金点赞(列表显示日期、金额、备注)。

如果你想支持,可以通过微信或支付宝点赞(金额随意)。相关项目:mao-map(毛主席足迹地图)、bilibili-comment-analyzer(B 站评论分析)。

另有 AI 代码助手:ai-code-context-helper,用于开发效率。

微信推送方案:fork 另一个项目,用企业微信插件。

FAQ

这里我预测一些常见问题,并直接回答基于工具的实际使用。

TrendRadar 怎么避免推送无关信息?

通过 frequency_words.txt 设置过滤词。比如,加 !无关词,就能排除。结合必须词,确保只匹配精确内容。

推送太频繁怎么办?

启用静默模式,设置时间范围。只在指定时间内推送,或限制为单次。

Docker 部署失败了,怎么排查?

用 docker logs -f trend-radar 查看日志。检查 config 目录挂载和环境变量。进入容器:docker exec -it trend-radar /bin/bash。

怎么调整热点排序?

在 config.yaml 的 weight 部分改比例。比如,rank_weight: 0.8 更注重排名。

没有编程基础,能用吗?

能。Fork 和设置 Secrets 都在网页上。配置用编辑器改文件,30 秒就能部署网页版。

推送消息太长怎么办?

工具自动分批推送,尤其在企业微信和 Telegram。钉钉在 v2.1.2 优化了。

自定义平台怎么加?

查 newsnow 源代码,添加 id 和 name 到 config.yaml 的 platforms。

升级后配置冲突怎么办?

大版本重新 fork。小版本替换 main.py 和 config.yaml。

网页版怎么手机适配?

默认适配。v2.0.3 优化了移动端。

工具安全吗?

是的,webhook 存 Secrets,别公开。数据本地处理。

结语

TrendRadar 让热点监控变得简单高效。通过聚合、筛选和推送,你能专注真正关心的信息。试试 fork 并配置,看看它如何改变你的资讯获取方式。如果有问题,欢迎在 issues 中讨论。使用愉快!