Hotdry.
systems-engineering

TrendRadar:35平台热点实时聚合与无代码多渠道推送部署

TrendRadar 通过 Docker 30s 部署,实现 35 平台热点实时聚合、智能过滤与企业微信/Telegram/ntfy 等无代码推送,详解参数配置与监控要点。

在信息爆炸时代,手动浏览多个平台热搜已无法高效捕捉热点。TrendRadar 项目提供了一种工程化解决方案:从 35 个平台(如抖音、知乎、B 站、华尔街见闻、财联社等)实时聚合热点,支持智能关键词过滤、三种推送模式,并通过 Docker 实现 30 秒无代码部署,直推企业微信、Telegram、ntfy 等渠道。这种架构的核心优势在于 “轻量易部署 + 精准推送”,避免了传统爬虫的高维护成本和信息过载问题。

多平台聚合与智能过滤机制

TrendRadar 的数据来源于 newsnow 项目 API,默认监控 11 个主流平台(如知乎、抖音、B 站热搜、百度热搜、微博等),用户可轻松扩展至 35 个以上平台。通过 config/config.yaml 中的 platforms 配置,只需指定 id(如 "toutiao" 为今日头条)和 name,即可激活对应源。该机制依赖外部 API,避免自建爬虫的 IP 封禁风险,但需注意合理控制频率以尊重数据提供者。

聚合后进入智能过滤环节,使用 config/frequency_words.txt 文件定义关键词,支持四种语法:

  • 普通词:基础匹配标题。
  • 必须词(+ 前缀):限定范围,如 “+ 发布” 确保新闻包含发布动作。
  • 过滤词(! 前缀):排除干扰,如 “! 广告” 过滤推广内容。
  • 数量限制(@后缀):如 “@10” 限制该组最多 10 条,v3.2.0 新增。

空行分隔实现词组管理,每个组独立统计。例如:

iPhone 华为 +发布

A股 上证 +涨跌 !预测

第一组捕获手机新品发布,第二组专注股市实况而非预测。过滤优先级最高,确保精准输出。TrendRadar 还内置个性化热点算法,默认权重为排名 60%、频次 30%、热度 10%(config.yaml 中的 weight 字段可调,总和为 1.0)。如追实时热点,可设 rank_weight: 0.8;追深度话题,调高 frequency_weight: 0.5。该算法重新排序全网热搜,避免单一平台算法偏差。

三种推送模式进一步优化交付:

模式 参数配置 适用场景 关键参数
daily report.mode: "daily" 每日汇总报告 包含历史匹配,适合管理者
current report.mode: "current" 当前榜单追踪 持续上榜重复推送,适合创作者
incremental report.mode: "incremental" 零重复监控 仅新内容,适合交易员

“GitHub - sansan0/TrendRadar 默认监控 11 个主流平台,也可自行增加额外的平台。” 增量模式特别实用,避免重复干扰,仅在新增时推送。

Docker 30 秒部署与无代码推送

部署零门槛:GitHub Fork 一键 Pages(网页浏览),或 Docker 镜像 wantcat/trendradar:latest。一行命令启动:

docker run -d --name trend-radar \
  -v ./config:/app/config:ro \
  -v ./output:/app/output \
  -e FEISHU_WEBHOOK_URL="你的飞书 URL" \
  -e CRON_SCHEDULE="*/30 * * * *" \
  wantcat/trendradar:latest

挂载 config 目录持久化关键词 / 模式,output 保存 HTML/TXT 报告。环境变量覆盖 yaml 配置,如 REPORT_MODE="incremental",解决 NAS 修改不生效问题。CRON_SCHEDULE 默认每 30 分执行一次,慎调避免 API 压力。

推送支持 9 种无代码渠道,通过 GitHub Secrets 或 Docker env 配置:

  • 企业微信 / 个人微信:WEWORK_WEBHOOK_URL,支持 markdown/text 模式,分批推送防长度限。
  • 飞书 / 钉钉:FEISHU_WEBHOOK_URL / DINGTALK_WEBHOOK_URL,富文本适配。
  • Telegram:TELEGRAM_BOT_TOKEN + CHAT_ID。
  • 邮件:EMAIL_FROM/PASSWORD/TO,智能 SMTP(如 QQ 465 SSL)。
  • ntfy/Bark/Slack:NTFY_TOPIC / BARK_URL / SLACK_WEBHOOK_URL,自托管可选。

推送时间窗口(notification.push_window.enabled: true)限制 09:00-18:00,避免夜间打扰。报告格式精美:热度分级(🔥高热)、新增标记(🆕)、跨平台对比,支持一键图片导出分享。

监控要点与工程参数

生产环境监控:

  1. 数据完整性:检查 output/ 每日文件生成,日志中无 “float object has no attribute 'lower'” 错误(v3.1.1 修复)。
  2. 推送成功率:Actions 日志验证 webhook 响应,ntfy 等限 250 条 / 天,用自托管避限。
  3. API 负载:CRON ≤ */30 * * * *,star newsnow 项目支持上游。
  4. 资源占用:Docker 镜像轻量,<100MB,CPU <5%。

可落地参数清单:

  • 初次部署:report.max_news_per_keyword: 10,全局限条数;sort_by_position_first: false(热度优先)。
  • 关键词优化:从宽到严,先普通词测试,加 +! 迭代;词组 ≤5 组 / 文件。
  • 回滚策略:小版本仅替 main.py/config.yaml;大版本(如 v3.0)重新 Fork。遇崩溃,降级 CRON 为 */60 * * * *。
  • 扩展:platforms 加 id: "douyin" 等;权重调 rank_weight: 0.7 偏实时。

风险控制:依赖 newsnow,勿高频滥用;webhook 存 Secrets 防泄露。实际测试显示,30s Docker + 增量模式,每日推送 <50 条,完美契合个人 / 团队舆情监控。

资料来源:

查看归档