作为投资者,你想及时跟踪股市动态;作为内容创作者,你需要把握实时趋势;或者只是普通用户,希望只看自己关心的内容。TrendRadar 就是一个这样的工具,它能聚合多个平台的热点,帮助你过滤并推送真正相关的新闻。
1 TrendRadar 工具概述
TrendRadar 是一个开源项目,旨在帮助用户高效获取全网热点信息。它以轻量和易部署为目标,主要通过 GitHub 来运行。你可以想象它像一个个人热点雷达:扫描多个新闻平台,筛选出匹配你兴趣的内容,然后通过手机推送或网页报告呈现。项目支持多种通知渠道,比如企业微信、Telegram、钉钉和飞书。
为什么选择这个工具?因为它能让你从被动刷屏转向主动监控。举例来说,如果你关心 AI 相关新闻,它会自动聚合头条、百度热搜等平台的条目,只推送包含“AI”或相关词的热点。这样,你就不用一个个 App 去翻看了。项目还强调隐私和自定义:所有数据处理都在你的仓库中进行,不会上传到第三方。
项目有一些基本统计,比如 GitHub Stars 和 Forks,但这些只是社区反馈的指标。如果你 fork 了项目,可以看到它如何通过 GitHub Actions 自动化运行。接下来,我们聊聊它的核心功能。
2 核心功能详解
TrendRadar 的功能围绕热点聚合、筛选和推送展开。让我们分解来看。
2.1 全网热点聚合
工具默认监控 11 个主流平台,包括:
- 今日头条
- 百度热搜
- 华尔街见闻
- 澎湃新闻
- bilibili 热搜
- 财联社热门
- 凤凰网
- 贴吧
- 微博
- 抖音
- 知乎
这些平台覆盖了新闻、社交和视频领域。如果你问:“能添加更多平台吗?”是的,可以自定义监控平台,我稍后会解释怎么做。它使用一个外部 API(来自 newsnow 项目)来获取数据,确保信息实时更新。
2.2 智能推送策略
推送是工具的亮点之一,有三种模式可选,适合不同用户需求:
| 模式 | 描述 | 适用人群 |
|---|---|---|
| incremental | 及时获取新增资讯,只在有新热点时推送 | 投资者或交易员,需要实时响应 |
| current | 掌握实时热点趋势,显示当前榜单 | 自媒体人或内容创作者,关注当下流行 |
| daily | 定时获取完整日报,汇总当日所有匹配 | 企业管理者或普通用户,适合每日回顾 |
此外,还有静默推送模式:你可以设置时间窗口,比如只在 9:00-18:00 内推送。这避免了半夜打扰。时间范围内,你可以选择每次执行都推送,还是只推送一次。
举个例子,如果你设置 incremental 模式,工具会监控新出现的新闻,并在有匹配时立即通知。推送内容包括热度等级(如 🔥 表示高热度)、匹配数量和时间范围。
2.3 精准内容筛选
筛选基于关键词文件 frequency_words.txt。你可以设置普通词、必须词(用 + 前缀)和过滤词(用 ! 前缀)。比如:
- 普通词:AI、比亚迪
- 必须词:+ 发布(标题必须包含这个词)
- 过滤词:!广告(排除包含这个词的新闻)
关键词用空行分隔成组,每个组独立统计。这让筛选更灵活。如果你问:“怎么避免无关新闻?”就是通过过滤词,比如 !水果 来排除苹果手机外的无关条目。
工具还会统计热点词汇,比如 “AI ChatGPT : 2 条”,并显示来源、排名和出现时间。新热点用 🆕 标记。
2.4 个性化热点算法
不同于平台自己的算法,TrendRadar 重新排序热点,基于三个权重:
- 排名权重(默认 60%):优先显示各平台前几名
- 频率权重(默认 30%):反复出现的更重要
- 热度权重(默认 10%):考虑排名质量
你可以调整这些比例。比如,如果你更在意持续话题,把频率权重调到 50%。这让输出更符合你的偏好。
2.5 多渠道实时推送
支持企业微信、飞书、钉钉和 Telegram。你可以同时配置多个渠道。推送格式清晰,包括热点统计、新增新闻和更新时间。
这里是推送效果的示例:
-
飞书推送效果

-
网页版通过 GitHub Pages 生成效果 (手机端适配、邮箱推送效果):

数据还会保存为 HTML 和 TXT 文件,便于回顾。
2.6 多端适配和零门槛部署
工具支持 GitHub Pages(网页浏览)和 Docker(容器运行)。部署简单:fork 项目,设置 Secrets,就能运行。适合没有编程基础的用户。
典型场景:股市监控、舆情追踪或日常资讯获取。
3 如何设置和部署 TrendRadar
现在,我们来一步步看怎么上手。假设你是个新手,我会详细解释每个步骤。
3.1 步骤 1: Fork 项目
- 访问 GitHub 上的 TrendRadar 项目页面。
- 点击右上角的 “Fork” 按钮,将项目复制到你的账户。
- 这会创建一个你的版本仓库,你的所有配置都在这里进行。
3.2 步骤 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。
- 邮件推送:
- 名称:
EMAIL_FROM- 发件人邮箱地址 - 名称:
EMAIL_PASSWORD- 邮箱密码或授权码 - 名称:
EMAIL_TO- 收件人邮箱地址(多个收件人用英文逗号分隔)也可以和 EMAIL_FROM 一样,自己发送给自己 - 名称:
EMAIL_SMTP_SERVER- SMTP 服务器地址(可选,留空则自动识别) - 名称:
EMAIL_SMTP_PORT- SMTP 端口(可选,留空则自动识别) - 多收件人设置:
- EMAIL_TO=“user1@example.com,user2@example.com,user3@example.com”
- 名称:
- ntfy 推送:
- 参考原项目介绍即可
你可以添加多个,工具会向所有渠道推送。
3.3 步骤 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:
-
添加关键词,按优先级排序。
-
用空行分词组。
-
示例:
Terminal window AIChatGPT+技术!广告 比亚迪特斯拉+销量
如果文件为空,会推送所有新闻,但受推送限制,建议减少平台或用网页版。
编辑 .github/workflows/crawler.yml:
- 关于
- cron: "0 * * * *"一行的配置 (控制多久运行和循环)- 这里我自己使用的是
"0 1-13/2 * * *(utc 时间下的设置)# 北京时间每天从 9 点到 21 点(即 9,11,13,15,17,19,21),每隔 2 小时执行一次 (实际有偏差)
- 这里我自己使用的是
3.4 步骤 4: 自定义监控平台
在 config.yaml 的 platforms 部分添加:
- id:平台代码(如 “wallstreetcn-hot”)
- name:显示名称
来源基于 newsnow 项目,你可以查看其源代码添加更多。
可以直接查看已经配置好的 6 配置好的平台 (在 config/config.yaml 文件中修改 platforms 配置)
3.5 步骤 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
如果你问:“Docker 怎么更新?”用 docker-compose pull && docker-compose up -d。
4 推送的格式和示例
推送消息结构清晰:
- 热点词汇统计:按组显示,带热度图标(如 🔥 [1/3] AI ChatGPT : 2 条)。
- 新闻详情:来源、🆕 标记、排名、时间、频率。
- 新增热点汇总。
- 更新时间。
格式元素表格:
| 元素 | 示例 | 含义 | 说明 |
|---|---|---|---|
| 热度图标 | 🔥 [1/3] | 热度等级 | 🔥 (≥10 条), 📈 (5-9 条), 📌 (<5 条) |
| 词组 | AI ChatGPT | 关键词组 | 从配置文件 |
| 匹配数 | : 2 条 | 总匹配 | 该组新闻数 |
| 来源 | [百度热搜] | 平台 | 新闻来源 |
| 新增 | 🆕 | 新热点 | 本轮首次 |
| 排名 | [1] | 高排名 | 加粗显示 |
| 时间 | – 09 时 15 分 | 首次出现 | 单次时间 |
| 范围 | [08 时 30 分 ~ 10 时 45 分] | 持续期 | 从首到尾 |
| 频率 | (3 次) | 出现次数 | 总计 |
示例消息如开头所述。
5 FAQ
这里我预测一些常见问题,并直接回答基于工具的实际使用。
5.1 TrendRadar 怎么避免推送无关信息?
通过 frequency_words.txt 设置过滤词。比如,加 !无关词,就能排除。结合必须词,确保只匹配精确内容。
5.2 推送太频繁怎么办?
启用静默模式,设置时间范围。只在指定时间内推送,或限制为单次。
5.3 Docker 部署失败了,怎么排查?
用 docker logs -f trend-radar 查看日志。检查 config 目录挂载和环境变量。进入容器:docker exec -it trend-radar /bin/bash。
5.4 怎么调整热点排序?
在 config.yaml 的 weight 部分改比例。比如,rank_weight: 0.8 更注重排名。
5.5 没有编程基础,能用吗?
能。Fork 和设置 Secrets 都在网页上。配置用编辑器改文件,30 秒就能部署网页版。
5.6 推送消息太长怎么办?
工具自动分批推送,尤其在企业微信和 Telegram。钉钉在 v2.1.2 优化了。
5.7 自定义平台怎么加?
查 newsnow 源代码,添加 id 和 name 到 config.yaml 的 platforms。
5.8 升级后配置冲突怎么办?
大版本重新 fork。小版本替换 main.py 和 config.yaml。
5.9 网页版怎么手机适配?
默认适配。v2.0.3 优化了移动端。
5.10 工具安全吗?
是的,webhook 存 Secrets,别公开。数据本地处理。
6 配置好的平台 (在 config/config.yaml 文件中修改 platforms 配置)
不用的平台在最前面加“#”,或者直接删除
# name 可以定义任意名称,只具有显示作用,即使项目运行了几天后,忽然改掉 name 也不会影响代码的正常运行platforms:
# === 综合新闻媒体类 === - id: "toutiao" name: "今日头条" - id: "baidu" name: "百度热搜" - id: "thepaper" name: "澎湃新闻" - id: "ifeng" name: "凤凰网" - id: "cankaoxiaoxi" name: "参考消息" - id: "sputniknewscn" name: "卫星通讯社" - id: "zaobao" name: "联合早报" - id: "mktnews" name: "MKT新闻" - id: "kaopu" name: "靠谱新闻"
# === 财经投资类 === - id: "wallstreetcn-hot" name: "华尔街见闻 最热" - id: "wallstreetcn-quick" name: "华尔街见闻 快讯" - id: "wallstreetcn-news" name: "华尔街见闻 最新" - id: "cls-hot" name: "财联社热门" - id: "gelonghui" name: "格隆汇" - id: "xueqiu" name: "雪球" - id: "jin10" name: "金十数据" - id: "fastbull" name: "快讯通"
# === 社交/短视频/娱乐类 === - id: "weibo" name: "微博" - id: "douyin" name: "抖音" - id: "bilibili-hot-search" name: "bilibili 热搜" - id: "tieba" name: "贴吧" - id: "zhihu" name: "知乎" - id: "hupu" name: "虎扑"
# === 科技类平台 === - id: "ithome" name: "IT之家" - id: "juejin" name: "掘金" - id: "github" name: "GitHub" - id: "hackernews" name: "Hacker News" - id: "solidot" name: "Solidot" - id: "v2ex" name: "V2EX" - id: "nowcoder" name: "牛客网" - id: "pcbeta" name: "远景论坛" - id: "sspai" name: "少数派" - id: "producthunt" name: "ProductHunt"
# === 其他/工具类 === - id: "chongbuluo" name: "虫部落"
# ====================================================== # 暂时失败的渠道(可能需要修复或接口已变更) # 备注:以下渠道在测试中抓取失败,已暂时注释 # 如需使用请检查API接口状态或联系维护团队 # ======================================================
# 失败的综合新闻媒体类 # - id: "sina" # name: "新浪" # 失败原因:接口可能已变更 # - id: "sohu" # name: "搜狐" # 失败原因:接口可能已变更
# 失败的财经类 # - id: "ghxi" # name: "国海证券" # 失败原因:接口可能已变更
# 失败的社交/短视频类 # - id: "kuaishou" # name: "快手" # 失败原因:接口可能已变更 # - id: "smzdm" # name: "什么值得买" # 失败原因:接口可能已变更
# 失败的科技类 # - id: "36kr" # name: "36氪" # 失败原因:接口可能已变更 # - id: "linuxdo" # name: "LinuxDo" # 失败原因:接口可能已变更我的 frequency_words
人工智能AIAIGC
OpenAIChatGPTSora
ClaudeAnthropicGeminiDeepMindGoogleMicrosoftCopilot
NVIDIA英伟达黄仁勋GPU算力
华为麒麟芯片鸿蒙昆仑芯寒武纪天数智芯芯片半导体光刻机ASML
大模型多模态推理模型AI AgentRAG对齐Prompt Engineering模型压缩蒸馏
字节跳动张一鸣Bytedance阿里马云通义千问百度文心一言李彦宏智源智谱AI百川智能零一万物MiniMax商汤科技稚晖君
比亚迪王传福小鹏王小鹏蔚来理想智界问界大疆DJI宇树
具身智能机器人仿生机器人自动驾驶AutopilotRoboTaxi
新质生产力科技创新数字经济国产化科技自立科技出海
大湾区粤港澳广东深圳香港HKUST港大清华北大中科大
MetaLLaMAxAIGrok特斯拉马斯克Figure 01StarlinkSpaceXStarship
量子计算Quantum Computing强化学习RLRLHF联邦学习Explainable AI可解释性AI Safety安全对齐Synthetic DataCloud-native分布式训练模型部署数据要素数据治理算法监管
中美科技竞争数字治理AI伦理算法透明
新能源储能光伏电池宁德时代房地产黄金宏观经济
AI教育智慧教育教育科技医疗AI医疗机器人辅助诊断网络安全Cybersecurity元宇宙数字人数字孪生
RISC-V开源硬件开源模型HuggingFaceModelScope智慧城市CityBrainEduGPTMedGPT多智能体系统Agentic AI生物计算脑机接口NeuralinkAI安全政策欧盟AI法案中国AI监管AI与艺术创作类AIGC