你是否经常觉得每天刷新闻太费时间,却又担心错过重要信息?比如作为投资者,你想及时跟踪股市动态;作为内容创作者,你需要把握实时趋势;或者只是普通用户,希望只看自己关心的内容。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 和手机适配:
数据还会保存为 HTML 和 TXT 文件,便于回顾。
多端适配和零门槛部署
工具支持 GitHub Pages(网页浏览)和 Docker(容器运行)。部署简单:fork 项目,设置 Secrets,就能运行。适合没有编程基础的用户。
典型场景:股市监控、舆情追踪或日常资讯获取。
如何设置和部署 TrendRadar
现在,我们来一步步看怎么上手。假设你是个新手,我会详细解释每个步骤。
步骤 1: Fork 项目
-
访问 GitHub 上的 TrendRadar 项目页面。 -
点击右上角的 “Fork” 按钮,将项目复制到你的账户。 -
这会创建一个你的版本仓库,你的所有配置都在这里进行。
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 中讨论。使用愉快!