type
status
date
Jan 7, 2026 09:03 AM
slug
summary
tags
category
icon
password
comment

🚀 一、Fork 项目到你的 GitHub 账户

  1. 打开项目:https://github.com/sansan0/TrendRadar
  1. 点击右上角 “Fork”,创建你自己的副本。
🚀 推荐的开始方式:Use this template
为了保持仓库整洁,避免继承冗余的历史记录,我建议你使用 Template 模式:
  1. 点击原仓库页面右上角的绿色 [Use this template] 按钮。
  1. 选择 "Create a new repository"。
💡 为什么要这样做?
  • Use this template:创建一个全新的、干净的仓库,没有历史包袱。
  • Fork:会保留完整的提交历史和关联关系,占用 GitHub 更多资源。

🔐 二、配置 GitHub Secrets(选择推送平台)

进入你 Fork 后的仓库:
Settings → Secrets and variables → Actions → New repository secret
填入你要使用的推送平台的 Secret。
可多个平台同时使用。
例如:
保存后看不到内容属于正常(GitHub 自动隐藏)。

💬 三、我的使用体验(真实反馈)

🟦 ntfy(免费开源)

  • 优点:下载客户端即用,无需注册
  • 缺点:排版不太美观,偶尔乱码
    • ✔ 适合测试用,不适合作为主力通知。

🤖 Telegram Bot

  • 国内环境直接无法访问(被墙)
  • GitHub Actions 出口 IP 不稳定,可能无法推送
    • ❌ 不推荐国内用户使用。

📧 邮箱推送

  • GitHub Actions IP 流动性大
  • 网易、QQ 邮箱会判定风险自动拒绝
    • ❌ 也不推荐。

🟩 飞书(最稳定、最推荐)

✔ 国内可用
✔ 网络稳定
✔ 群消息推送方便
✔ 支持两个方案,推荐方案二
👉 飞书 = 最佳通知方式(我个人强烈推荐)

🤝 四、飞书 Webhook 配置(方案一 & 方案二)


🅰️ 方案一:简单配置(适合个人)

📱 必须注意的重要步骤!

群必须先在手机飞书 APP 中创建,否则无法绑定机器人到群。
机器人必须点击“发布”才会生效,否则根本无法使用。
(这两个是很多人忽略的关键点)

方案一配置流程

1️⃣ 访问机器人指令页面

2️⃣ 创建指令 → 选择 Webhook 触发

复制 Webhook 地址备用。

3️⃣ 参数填写:

4️⃣ 操作 → “通过官方机器人发送消息”

  • 标题:TrendRadar 热点监控

5️⃣ 添加 “Webhook 触发” 节点(关键)

配置完成后,设为 Secret:

🅱️ 方案二(推荐):机器人应用(更稳定、更专业)

📱 同样重要的两个提醒!

  • ⚠ 群必须在飞书手机端提前建好
  • ⚠ 创建机器人后必须点击“发布”才能正常使用

方案二配置流程

1️⃣ 打开机器人应用后台

2️⃣ 创建新机器人 → 进入应用 → “流程设计”

3️⃣ 选择触发器 → Webhook 触发

复制 Webhook 地址备用。

4️⃣ “参数”填写:

notion image

5️⃣ 操作 → 发送飞书消息

勾选“群消息”,选择你创建的群。
标题填写:TrendRadar 热点监控

6️⃣ 添加“Webhook 触发”节点

完成后,将 Webhook 设置到 GitHub:
👉 方案二非常稳定,适合长期运行。

⏰ 五、CRON 定时任务(非常重要)

要删掉注释,这里给出示例与原因:

❗ 要删除的注释:

GitHub Actions 对 Cron 有严格格式要求,
注释写在 cron 行后面可能导致整个 workflow 无法解析。

推荐的正常 CRON 表达式

✔ 每小时执行一次

✔ 每半小时一次

✔ 早 8 点~晚 22 点,每小时执行(推荐)

GitHub Actions 触发会有延迟,不要期望严格准时。
 

📊 REPORT_MODE 报告模式说明(daily / incremental / current)

TrendRadar 的配置中,REPORT_MODE(或 report.mode)用于控制 每次推送的内容方式
它支持三种模式:

🟦 1. daily(每日模式)

含义:
只推送今天(当天)抓取到的最新内容。
特点:
  • 每日重置
  • 只关注今天的热点
  • 适合 每天固定推送一次 的场景
  • 历史积累不会混入今日内容
推荐给:
  • 想每天得到“今日热点总结”的用户
  • 想保持干净、无重复的每日报告的人

🟩 2. incremental(增量模式)

含义:
每次只推送自上次推送以来新增的内容
特点:
  • 自动记录上一次推送的位置
  • 不会重复推送,实际情况是每次推送会把先前的一起推送,不过在末尾会标记处此次新增内容
  • 适合 一天多次推送 的场景
  • 新内容出现就会推送,不会重复旧内容
实际体验:
👉 如果你设置每小时执行,这种模式最合理。
👉 多次抓取不会造成内容重复。
推荐给:
  • 希望及时收到新内容(多次推送)的用户
  • 内容希望“持续滚动更新”而不是每天重置的人

🟥 3. current(当前模式)

含义:
每次推送的都是本次抓取到的 所有当前发现的内容
特点:
  • 不去重,不管历史
  • 每次执行都是一份全量报告
  • 内容重复度可能很高
  • 报性价比最低,但最简单粗暴
适合:
  • Debug、测试
  • 你想“看到这次抓取的全部内容”时
  • 不关心重复、不关心历史记录的用户

🧠 三者对比表

模式
是否重复推送
是否记录历史
适合频率
场景
daily
不重复(当天)
当天重置
1次/天
每日热点总结
incremental
不重复
持续记录
多次/天
最新消息、即时更新
current
可能重复
不记录
任意
测试 / 全量输出

⭐ 最推荐使用哪个?

  • 如果你每天只想推送一次 → daily
  • 如果你每小时或每半小时执行 → incremental(最佳)
  • 如果你正在调试抓取效果 → current

🐳 六、Docker 版本

TrendRadar 也支持 Docker 部署
  • 适合 VPS、服务器、自托管环境
  • 更适合不想依赖 GitHub Actions 的用户
  • 你提到需要的话可自行研究,仓库中有 Dockerfile
(如你需要,我可以帮你做 Docker-compose 示例)

🧩 七、企业微信 / 钉钉说明

你提到:
企业微信和钉钉我没有测试
所以教程中已移除,不做推荐。
如你以后要接入,我可以帮你写专门的 Webhook 配置章节。

🎯 八、总结

推送方式
推荐指数
使用体验总结
ntfy
⭐⭐⭐
简单可用,但排版差
Telegram
⭐⭐
国内基本不能用
邮箱
GitHub IP 波动导致频繁失败
飞书方案一
⭐⭐⭐⭐
简单稳定,需要发布机器人
飞书方案二
⭐⭐⭐⭐⭐
最稳定、最专业,强烈推荐
Docker
⭐⭐⭐⭐
理解能力强的用户可选,自托管最佳

拓展部分(感兴趣可以自行研究,喜欢可以给作者点个star):

🤖 AI 智能分析部署

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

🔌 MCP 客户端

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

推送平台整理


教程补充

⚠️ 必需配置:远程云存储(GitHub Actions 环境必需,推荐 Cloudflare R2)
GitHub Secret 配置(⚠️ 以下 4 个配置项都是必需的):
Name(名称)
Secret(值)说明
S3_BUCKET_NAME
存储桶名称(如 trendradar-data
S3_ACCESS_KEY_ID
访问密钥 ID(Access Key ID)
S3_SECRET_ACCESS_KEY
访问密钥(Secret Access Key)
S3_ENDPOINT_URL
S3 API 端点(如 R2:https://<account-id>.r2.cloudflarestorage.com
如何获取凭据(以 Cloudflare R2 为例):
  1. 进入 R2 概览
  • 在左侧侧边栏找到并点击 R2对象存储
  1. 创建存储桶
  • 点击概述
  • 点击右上角的 创建存储桶 (Create bucket)。
  • 输入名称(例如 trendradar-data),点击 创建存储桶
  1. 创建 API 令牌
  • 回到 概述页面。
  • 点击右下角 Account Details 找到并点击 Manage (Manage R2 API Tokens)。
  • 同时你会看到 S3 APIhttps://<account-id>.r2.cloudflarestorage.com(这就是 S3_ENDPOINT_URL)
  • 点击 创建 Account APl 令牌 。
  • ⚠️ 关键设置
    • 令牌名称:随意填写(如 github-action-write)。
    • 权限:选择 对象读和写 。
    • 指定存储桶:为了安全,建议选择 仅适用于指定存储桶 并选中你的桶(如 trendradar-data)。
  • 点击 创建 API 令牌立即复制 显示的 Access Key ID 和 Secret Access Key(只显示一次!)。
  • R2 免费额度:每月 10GB 存储 + 100万次读取,对本项目来说非常充足。
  • 支付验证:开通 R2 即使是免费额度,Cloudflare 也要求绑定 PayPal 或信用卡进行身份验证(不会实际扣费,除非超过额度)。

🌟 GitHub Actions 签到周期修改教程

有些爬虫项目会有“试用期”机制,每隔一段时间需要手动 Check In 签到。如果你想延长周期,让程序可以跑得更久,这里教你如何修改签到时间。

1️⃣ 找到 workflow 文件

  • GitHub 仓库里,workflow 文件一般在:
  • 文件名可能是 crawler.yml 或者作者自定义的名字

2️⃣ 定位签到逻辑

打开文件后,找到 Check Expiration 这段代码:
⚠️ 这里的 LIMIT_SECONDS 表示签到周期,单位是 秒
  • 604800 秒 = 7 天(默认)

3️⃣ 修改签到周期

你可以根据需要修改周期:
周期
秒数
示例写法
15天
1,296,000
LIMIT_SECONDS=1296000
30天(1个月)
2,592,000
LIMIT_SECONDS=2592000
60天(2个月)
5,184,000
LIMIT_SECONDS=5184000
180天(半年)
15,552,000
LIMIT_SECONDS=15552000
365天(1年)
31,536,000
LIMIT_SECONDS=31536000
示例:改成一个月

4️⃣ 保存 & 提交

  1. 保存修改后的 crawler.yml 文件
  1. 提交到 GitHub 仓库:
  1. 下次 workflow 运行时,会按新的周期判断是否到期

5️⃣ 小提示 💡

  • 🔹 签到提示显示在 GitHub Actions 日志里
    • 仓库 → Actions → 选择 workflow → 展开 Check Expiration step
  • 🔹 延长周期不会改变抓取频率,抓取频率由 cron 控制
  • 🔹 无限长周期:如果不想出现到期提示,可以把整个 Check Expiration step 注释掉
🎉 就这样,你的爬虫就可以按照新的周期运行啦,既减少手动操作,又能保证抓取稳定!
🎬 如何安全使用 MuJing 与 FFmpeg:报毒、替换与视频转换全攻略🚀 SubsTracker + Resend 邮件通知完整部署流程
Loading...
Catalog
0%
WangLin
WangLin
分享一些好玩有趣的
Announcement
🎉我的博客上线啦🎉

📢 博客公告

欢迎来到我的 代码学习与分享天地
这里是我专注于 电脑技术网站搭建 及相关领域的学习记录和心得分享。
无论是编程技巧、实战项目,还是技术难题的解决方案,都会在这里一一呈现。
💡 我的初心
通过不断学习和实践,积累技术经验,并将有价值的内容分享给更多热爱技术的朋友。

感谢你的到来,祝你阅读愉快!
-- 感谢您的支持 ---
 
Catalog
0%