项目概述

TrendRadar 是一个多平台热点聚合工具,能够自动监控全网热点新闻并通过多种渠道推送,帮助用户告别无效刷屏,只关注真正关心的资讯。该项目提供了强大的信息筛选功能,支持 35 个主流平台的数据抓取,包括今日头条、百度热搜、微博、抖音、知乎、B 站等,并集成了基于 MCP 协议的 AI 智能分析系统。

本操作手册旨在为不同技术水平的用户提供从项目下载、安装配置到高级使用的完整指南,确保用户能够顺利上手并充分利用该工具的各项功能。无论您是普通用户、开发者还是企业管理者,都能通过本手册快速掌握 TrendRadar 的使用方法。

一、项目下载与环境准备

1.1 系统要求与技术栈

在开始下载和安装 TrendRadar 之前,需要确保您的环境满足以下要求:

操作系统支持

  • Linux (Ubuntu 18.04+、CentOS 7+、Debian 9+)
  • macOS (10.14+)
  • Windows (10+、Windows Server 2019+)

软件依赖

  • Python 3.8+(建议使用 Python 3.10 版本)
  • Git 2.20+(用于代码获取)
  • Docker 20.10+(可选,用于容器化部署)
  • pip 包管理器

硬件要求

  • 最低配置:1 CPU、1GB RAM、10GB 存储
  • 推荐配置:2 CPU、2GB RAM、50GB 存储

技术栈说明

TrendRadar 主要使用 Python 开发,核心技术包括:

  • requests:用于发送 HTTP 请求获取网页数据
  • pytz:用于处理时间和时区
  • PyYAML:用于配置文件解析
  • fastmcp:用于 MCP 协议通信
  • websockets:用于 WebSocket 通信

1.2 从 GitHub 获取项目代码

获取 TrendRadar 项目代码有两种主要方式,您可以根据自己的需求选择:

方式一:直接克隆项目(推荐)

打开终端,执行以下命令:

git clone https://github.com/sansan0/TrendRadar.git

cd TrendRadar

方式二:下载 ZIP 压缩包

  1. 访问项目 GitHub 仓库:https://github.com/sansan0/TrendRadar
  2. 点击页面右上角的 "Code" 按钮
  3. 选择 "Download ZIP" 选项
  4. 解压下载的压缩包到合适的目录

1.3 项目目录结构说明

成功获取代码后,让我们了解一下项目的基本结构:

TrendRadar/

├── config/                 # 配置文件目录

│   ├── config.yaml         # 主配置文件

│   └── frequency\_words.txt # 关键词配置文件

├── docker/                 # Docker部署配置

├── mcp\_server/             # MCP服务器模块

├── output/                 # 输出文件目录

├── \_image/                 # 图片资源

├── .github/workflows/      # GitHub Actions配置

├── main.py                 # 主程序文件

├── requirements.txt        # Python依赖文件

├── pyproject.toml          # 项目配置文件

└── 各种部署脚本文件


  • config 目录:包含所有配置文件,是项目运行的核心
  • docker 目录:包含 Docker 相关配置文件
  • output 目录:存放生成的报告和日志文件
  • main.py:项目的入口文件,包含核心业务逻辑
  • requirements.txt:列出了项目所需的所有 Python 依赖包

二、安装与配置指南

2.1 依赖包安装

在开始配置之前,需要先安装项目所需的依赖包。有两种安装方式:

方式一:自动安装(推荐)

对于不同操作系统,提供了相应的自动化脚本:

  • Windows 用户:双击运行setup.bat
  • Mac/Linux 用户:在终端执行sh ``setup.sh

方式二:手动安装

在终端执行以下命令:

pip install -r requirements.txt

安装过程中可能会遇到依赖包版本问题,建议使用 Python 3.10 环境以确保兼容性。如果出现权限问题,可以尝试使用sudo命令或在虚拟环境中安装 。

2.2 主配置文件详解

config/config.yaml是项目的核心配置文件,包含了从基础设置到高级功能的所有配置项。让我们详细了解各个配置块的作用:

1. 基础应用配置

app:
  version_check_url: "https://raw.githubusercontent.com/sansan0/TrendRadar/refs/heads/master/version"
  show_version_update: true
  timezone: "Asia/Shanghai"


  • version_check_url:用于检查新版本的 URL
  • show_version_update:是否显示版本更新提示(生产环境建议关闭)
  • timezone:时区设置,默认使用北京时间(Asia/Shanghai)

2. 数据存储配置


storage:
  backend: "auto"
  formats:
    sqlite: true
    txt: false
    html: false
  local:
    data_dir: "output"
    retention_days: 0
  remote:
    retention_days: 0
    endpoint_url: ""
    bucket_name: ""
    access_key_id: ""
    secret_access_key: ""
    region: ""


  • backend:存储后端选择,支持 local(本地)、remote(远程)、auto(自动)
  • formats:数据存储格式,sqlite 为必须启用
  • local:本地存储配置,包括数据目录和保留天数
  • remote:远程存储配置(支持 S3 兼容协议,如 Cloudflare R2、阿里云 OSS 等)

3. 爬虫配置


crawler:
  request_interval: 1000
  enable_crawler: true
  use_proxy: false
  default_proxy: "http://127.0.0.1:10801"


  • request_interval:请求间隔(毫秒),建议根据目标网站调整
  • enable_crawler:是否启用爬虫功能
  • use_proxy:是否启用代理
  • default_proxy:默认代理服务器地址

4. 报告模式配置


report:
  mode: "daily"  # 可选:"daily"(当日汇总)、"incremental"(增量监控)、"current"(当前榜单)
  rank_threshold: 5
  sort_by_position_first: false
  max_news_per_keyword: 0
  reverse_content_order: false


  • mode:报告模式选择,根据使用场景选择
  • rank_threshold:排名高亮阈值,小于等于该值的热搜会红色加粗显示
  • sort_by_position_first:排序优先级,true 表示先按配置位置排序
  • max_news_per_keyword:每个关键词最大显示数量,0 表示不限制

5. 通知配置


notification:
  enable_notification: true
  message_batch_size: 4000
  batch_send_interval: 3
  push_window:
    enabled: false
    time_range:
      start: "20:00"
      end: "22:00"
    once_per_day: true


  • enable_notification:是否启用通知功能
  • message_batch_size:消息分批大小(字节)
  • batch_send_interval:批次发送间隔(秒)
  • push_window:推送时间窗口控制(避免非工作时间打扰)

6. 多渠道推送配置

webhooks:
  feishu_url: ""
  dingtalk_url: ""
  wework_url: ""
  wework_msg_type: "markdown"
  telegram_bot_token: ""
  telegram_chat_id: ""
  email_from: ""
  email_password: ""
  email_to: ""
  email_smtp_server: ""
  email_smtp_port: ""

这里配置了多种推送渠道,重要安全提示:请不要在配置文件中直接填写 webhook 地址,应该使用 GitHub Secrets 或环境变量进行配置,避免泄露 。

7. 权重配置

weight:
  rank_weight: 0.6
  frequency_weight: 0.3
  hotness_weight: 0.1

用于调整热搜排序算法的权重,可根据个人偏好调整 。

2.3 关键词配置文件

config/frequency_words.txt是关键词配置文件,支持三种语法和词组功能:

基础语法说明


  1. 普通关键词:基础匹配,只要标题包含其中任意一个词就会被捕获
华为
OPPO
苹果


  1. 必须词:使用+号,必须同时包含普通词和必须词才会被捕获
华为
OPPO
+手机


  1. 过滤词:使用!号,包含过滤词的新闻会被直接排除
苹果
华为
!水果
!价格

词组功能说明

用空行分隔不同的词组,每个词组独立统计。例如:


iPhone
OPPO

苹果
三星
+发布

手机
销量
+市场

配置建议


  • 关键词越靠前,优先级越高
  • 合理使用必须词和过滤词,避免过度复杂
  • 建议采用 "从宽到严" 的配置策略:先用宽泛关键词测试,再逐步添加必须词和过滤词

2.4 多平台支持说明

TrendRadar 默认支持 11 个主流平台,您可以在config.yaml中查看和配置:


platforms:
  - id: "toutiao"
    name: "今日头条"
  - id: "baidu"
    name: "百度热搜"
  - id: "wallstreetcn-hot"
    name: "华尔街见闻"
  - id: "thepaper"
    name: "澎湃新闻"
  - id: "bilibili-hot-search"
    name: "bilibili 热搜"
  - id: "cls-hot"
    name: "财联社热门"
  - id: "ifeng"
    name: "凤凰网"
  - id: "tieba"
    name: "贴吧"
  - id: "weibo"
    name: "微博"
  - id: "douyin"
    name: "抖音"
  - id: "zhihu"
    name: "知乎"

如需添加新的平台,需要在config.yamlplatforms字段中添加相应配置,并确保 newsnow 项目支持该平台 。

三、三种部署方式详解

TrendRadar 提供了三种部署方式,覆盖从新手到技术用户的全场景需求:

3.1 GitHub Actions 部署(零门槛,推荐新手)

这是最简单的部署方式,无需服务器、无需本地环境,仅需 GitHub 账号即可,30 秒完成部署 。

部署步骤

  1. Fork 项目
  1. 配置 GitHub Secrets
  • 进入您 Fork 后的仓库
  • 点击 "Settings"→"Secrets and variables"→"Actions"
  • 点击 "New repository secret" 添加以下配置(根据需要选择):
WEWORK_WEBHOOK_URL: 企业微信机器人URL
FEISHU_WEBHOOK_URL: 飞书机器人URL
DINGTALK_WEBHOOK_URL: 钉钉机器人URL
TELEGRAM_BOT_TOKEN: Telegram机器人Token
TELEGRAM_CHAT_ID: Telegram聊天ID
EMAIL_FROM: 发件人邮箱
EMAIL_PASSWORD: 邮箱密码或授权码
EMAIL_TO: 收件人邮箱


  1. 配置关键词
  • 进入 config 目录,找到frequency_words.txt文件
  • 点击铅笔图标进行编辑
  • 添加您关注的关键词(参考前面的语法说明)
  1. 启用 GitHub Actions
  • 点击顶部的 "Actions" 标签
  • 找到默认工作流(如 "TrendRadar Auto Run")
  • 点击 "Enable workflow" 开启自动化
  1. 自定义运行频率(可选)
  • 打开.github/workflows/crawler.yml文件
  • 找到on.schedule.cron字段
  • 根据需要修改 Cron 表达式(默认每小时运行一次):
# 每30分钟运行
30 * * * *

# 每天早8点运行
0 8 * * *

# 每15分钟运行
*/15 * * * *

# 工作时间(9:00-18:00)每小时运行
0 9-18 * * 1-5
  1. 查看运行结果
  • 自动化运行后,点击 "Actions"→对应运行记录查看日志
  • 开启 GitHub Pages 查看网页版报告:
    • 点击仓库 "Settings"→"Pages"
    • "Source" 选择 "Deploy from a branch","Branch" 选择 "main",目录选择 "/output"
    • 等待 1-2 分钟,访问:https:// 你的 GitHub 用户名.github.io/TrendRadar

3.2 Docker 部署(稳定可靠,适合有服务器用户)

Docker 部署可实现环境隔离,避免依赖冲突,支持本地电脑或云服务器部署 。

前置环境准备

方式一:使用现成的 Docker 镜像(推荐)


  1. 拉取镜像(支持 amd64/arm64 架构):
docker pull sansan0/trendradar:latest
  1. 创建必要的目录结构:
mkdir -p config output
  1. 下载配置文件模板:
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/config.yaml -P config/

wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/frequency\_words.txt -P config/
  1. 启动容器(以飞书推送为例):
docker run -d \
  --name trend-radar \
  -v $(pwd)/config:/app/config:ro \
  -v $(pwd)/output:/app/output \
  -e FEISHU_WEBHOOK_URL="你的飞书webhook" \
  wantcat/trendradar:latest
  1. 完整启动命令(支持多种推送渠道):
docker run -d \
  --name trend-radar \
  -v $(pwd)/config:/app/config:ro \
  -v $(pwd)/output:/app/output \
  -e FEISHU_WEBHOOK_URL="你的飞书webhook" \
  -e DINGTALK_WEBHOOK_URL="你的钉钉webhook" \
  -e WEWORK_WEBHOOK_URL="你的企业微信webhook" \
  -e TELEGRAM_BOT_TOKEN="你的telegram_bot_token" \
  -e TELEGRAM_CHAT_ID="你的telegram_chat_id" \
  -e EMAIL_FROM="你的发件邮箱" \
  -e EMAIL_PASSWORD="你的邮箱密码或授权码" \
  -e EMAIL_TO="收件人邮箱" \
  -e CRON_SCHEDULE="*/30 * * * *" \
  -e RUN_MODE="cron" \
  -e IMMEDIATE_RUN="true" \
  wantcat/trendradar:latest

方式二:使用 docker-compose(推荐用于生产环境)

  1. 创建项目目录并下载配置文件:
mkdir -p trendradar/{config,docker}
cd trendradar

wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/config.yaml -P config/
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/frequency_words.txt -P config/
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/docker/.env
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/docker/docker-compose.yml


  1. 编辑.env文件配置环境变量:
# 推送配置
FEISHU_WEBHOOK_URL=
DINGTALK_WEBHOOK_URL=
WEWORK_WEBHOOK_URL=
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=

# 邮件配置
EMAIL_FROM=
EMAIL_PASSWORD=
EMAIL_TO=

# 运行配置
CRON_SCHEDULE=*/30 * * * *
RUN_MODE=cron
IMMEDIATE_RUN=true


  1. 启动服务:
docker-compose up -d
  1. 查看运行状态:
docker-compose ps

方式三:本地构建镜像(适合开发调试)

  1. 构建镜像:
docker build -t trendradar:local .
  1. 启动容器:
docker run -d \
  --name trend-radar \
  -v $(pwd)/config:/app/config \
  -v $(pwd)/output:/app/output \
  trendradar:local

3.3 本地运行(适合技术用户,支持自定义扩展)

本地运行适合需要二次开发或调试的用户,需配置 Python 前置环境 。

环境配置

  1. 安装 Python 3.8+(建议使用 Python 3.10)
  • Windows 用户:下载 Python 安装包并勾选 "Add Python to PATH"
  • Linux/macOS 用户:执行sudo apt install python3.10 python3-pip -y
  1. 安装依赖包:
pip install -r requirements.txt
  1. 配置文件:
cp config/config.yaml.example config/config.yaml
cp config/frequency_words.txt.example config/frequency_words.txt

# 编辑配置文件
vim config/config.yaml
vim config/frequency_words.txt
  1. 单次运行测试:
python main.py
  1. 添加定时任务(Windows):
  • 打开 "任务计划程序"
  • 创建基本任务
  • 设置触发器(如每小时运行)
  • 操作:启动程序python.exe,参数main.py
  1. 添加定时任务(Linux/macOS):
crontab -e

# 添加以下内容(每30分钟运行一次)
*/30 * * * * cd /path/to/TrendRadar && python main.py

四、基础使用方法

4.1 启动与停止服务

根据不同的部署方式,启动和停止服务的方法有所不同:

Docker 部署

  • 启动服务:docker start trend-radar
  • 停止服务:docker stop trend-radar
  • 重启服务:docker restart trend-radar
  • 查看日志:docker logs -f trend-radar

docker-compose 部署

  • 启动服务:docker-compose up -d
  • 停止服务:docker-compose down
  • 重启服务:docker-compose restart
  • 查看日志:docker-compose logs -f

本地运行

  • 启动服务:python main.py
  • 停止服务:按Ctrl+C

4.2 三种工作模式详解

TrendRadar 提供三种工作模式,每种模式适用于不同的使用场景:

1. 当日汇总模式(daily)

  • 推送时机:按时推送(默认每小时推送一次)
  • 显示内容:当日所有匹配新闻 + 新增新闻区域
  • 适用场景:日报总结、全面了解当日热点趋势
  • 配置方法:在config.yaml中设置mode: "daily"

2. 当前榜单模式(current)

  • 推送时机:按时推送(默认每小时推送一次)
  • 显示内容:当前榜单匹配新闻 + 新增新闻区域
  • 适用场景:实时热点追踪、了解当前最火的内容
  • 配置方法:在config.yaml中设置mode: "current"

3. 增量监控模式(incremental)

  • 推送时机:有新增内容时才推送
  • 显示内容:新出现的匹配频率词新闻
  • 适用场景:避免重复信息干扰、高频监控场景
  • 配置方法:在config.yaml中设置mode: "incremental"

模式选择建议

  • 投资者 / 交易员:选择incremental模式,及时获取新增资讯(建议自建服务器进行 Docker 部署,提高检测频率)
  • 自媒体人 / 内容创作者:选择current模式,掌握实时热点趋势
  • 企业管理者 / 普通用户:选择daily模式,定时获取完整日报

4.3 推送结果查看与分析

推送结果的查看方式取决于您的配置:

推送通知查看

推送内容格式示例:

📊 热点词汇统计

🔥 人工智能 AI : 12 条

  1. [百度热搜] 科技巨头发布新AI模型 [1] - 12时30分 (4次)
  2. [今日头条] AI技术最新突破 [2] - [13时15分 ~ 14时30分] (2次)

格式说明

  • 关键词:人工智能 AI(频率词组)
  • 匹配数量:12 条(该关键词组匹配的标题总数)
  • 来源平台[百度热搜](标题所属的平台名称)
  • 高排名标记[1](排名≤阈值的热搜,红色加粗显示)
  • 普通排名标记[7](排名 > 阈值的热搜,普通显示)
  • 首次发现时间:12 时 30 分(标题首次被发现的时间)
  • 时间范围[12 时 30 分~14 时 00 分](标题出现的时间范围)
  • 出现次数:(4 次)(标题在监控期间出现的总次数)

本地文件查看

报告生成后,会保存在output目录下,按照日期和时间组织:

  • TXT 报告:output/YYYY年MM月DD日/txt/HH时MM分.txt
  • HTML 报告:output/YYYY年MM月DD日/html/HH时MM分.html

4.4 数据存储与管理

TrendRadar 支持多种数据存储方式,您可以根据需求配置:

存储后端选择

  • local:本地 SQLite + TXT/HTML 文件
  • remote:远程云存储(S3 兼容协议)
  • auto:自动选择(GitHub Actions 环境且配置了远程存储则用 remote,否则用 local)

本地存储管理

  • 数据目录:默认output目录
  • 保留策略:retention_days设置保留天数(0 表示不清理)
  • 清理命令(手动执行):


# 删除7天前的数据
find output/ -type d -name "2025年*" -mtime +7 -exec rm -rf {} \;

远程存储配置示例(以阿里云 OSS 为例)


remote:
  retention_days: 0
  endpoint_url: "https://oss-cn-hangzhou.aliyuncs.com"
  bucket_name: "your-bucket-name"
  access_key_id: "your-access-key-id"
  secret_access_key: "your-secret-access-key"
  region: "cn-hangzhou"

五、进阶操作指南

5.1 高级配置优化

为了让 TrendRadar 更好地满足您的个性化需求,以下是一些高级配置优化建议:

性能优化配置

  1. 爬虫优化
crawler:
  request_interval: 2000  # 2秒(根据目标网站调整,避免过于频繁)
  enable_crawler: true
  use_proxy: false  # 是否启用代理
  default_proxy: "http://127.0.0.1:10086"
  1. 通知优化
notification:
  message_batch_size: 4000  # 消息分批大小(字节)
  dingtalk_batch_size: 20000  # 钉钉消息分批大小
  feishu_batch_size: 29000   # 飞书消息分批大小
  batch_send_interval: 3      # 批次发送间隔(秒)
  1. 推送时间窗口控制
push_window:
  enabled: true  # 启用时间窗口控制
  time_range:
    start: "09:00"  # 工作时间推送
    end: "18:00"
  once_per_day: true  # 每天只推送一次
  push_record_retention_days: 7  # 推送记录保留7天
  1. 权重配置调整
weight:
  rank_weight: 0.6    # 重视排名
  frequency_weight: 0.3  # 考虑频次
  hotness_weight: 0.1   # 适度考虑热度

5.2 MCP 协议与 AI 分析集成

TrendRadar v3.0.0 引入了基于 MCP(Model Context Protocol)协议的 AI 分析系统,这是项目的重大升级,将简单的数据收集转变为智能数据分析平台 。

MCP 协议介绍

MCP(Model Context Protocol)是一种用于 AI 模型通信的协议,TrendRadar 内置了 13 种分析工具,包括:

  • 热点趋势分析
  • 情感分析
  • 舆情监测
  • 话题聚类
  • 等等

集成 Cherry Studio 进行 AI 分析

  1. 下载安装 Cherry Studio
  • 访问官网:https://cherry-ai.com/
  • 根据系统下载对应版本(Windows 用户选择.exe 格式,MacOS 使用.dmg 文件)
  • 安装完成后启动
  1. 配置 Cherry Studio
  • 点击左下角齿轮图标进入 "模型服务" 设置
  • 选择硅基流动服务,填入 API 密钥
  • 配置模型参数(温度值 0.1-2.0,最大输出长度 2048-4096)
  1. 在 TrendRadar 中启用 MCP 功能
ai_analysis:
  enable: true
  service_url: "http://localhost:8008"  # 根据实际配置
  api_key: "your-api-key"
  1. 使用 AI 分析功能
  • 重启 TrendRadar 服务
  • 爬取的热点数据会自动发送至 AI 服务
  • 分析结果通过通知渠道推送
  • 可以通过自然语言对话查询新闻数据

5.3 自定义平台扩展

如果您需要监控 TrendRadar 默认支持之外的平台,可以按照以下步骤进行扩展:

1. 确认平台支持

TrendRadar 的数据来源于 newsnow 项目,因此需要先确认 newsnow 支持您要添加的平台。可以访问:https://github.com/ourongxing/newsnow 查看支持的平台列表。

2. 添加平台配置

config/config.yamlplatforms字段中添加新平台:

platforms:
  # ... 现有平台 ...
  - id: "new-platform"
    name: "新平台名称"

3. 验证平台可用性

修改main.py文件,在BidCrawler类中添加对应的抓取方法:

def fetch_new_website(self):
    """新网站"""
    url = "https://www.new_website.com/"
    try:
        response = self.session.get(url, proxies=self.get_proxies(), timeout=10)
        response.raise_for_status()
        # 解析HTML或返回模拟数据
        mock_data = {
            "items": [
                {"title": "新项目1", "url": url},
                {"title": "新项目2", "url": url},
            ]
        }
        return json.dumps(mock_data), "new_website", "新网站名称"
    except Exception as e:
        print(f"爬取新网站失败: {e}")
        return None, "new_website", "新网站名称"

fetch_data方法中添加网站 ID 的处理:

elif id_value == "new_website":
    return self.fetch_new_website()

5.4 安全配置与最佳实践

为了确保 TrendRadar 的安全运行,以下是一些重要的安全配置建议:

1. 凭证安全管理

  • 绝对不要在配置文件中直接填写 webhook 地址
  • 使用 GitHub Secrets 或 Docker Secrets 管理敏感信息
  • 定期更换 API 密钥和 webhook 地址

2. Docker 安全配置

# docker-compose.yml中的安全配置
services:
  trend-radar:
    # ... 其他配置 ...
    security_opt:
      - no-new-privileges:true
    read_only: true
    tmpfs:
      - /tmp
    volumes:
      - ./config:/app/config:ro  # 只读挂载配置目录
      - ./output:/app/output

3. 网络安全

  • 建议在防火墙中限制访问端口
  • 使用 HTTPS 连接(如果使用 Web 界面)
  • 避免在公开网络中暴露服务

5.5 监控与维护

建立完善的监控和维护机制是保证系统稳定运行的关键:

1. 健康检查

创建健康检查脚本health_check.sh

#!/bin/bash
CONTAINER_NAME="trend-radar"
LOG_FILE="/var/log/trendradar_health.log"

# 检查容器状态
if ! docker ps | grep -q $CONTAINER_NAME; then
    echo "$(date): 容器未运行" >> $LOG_FILE
    docker start $CONTAINER_NAME
    exit 1
fi

# 检查日志中的错误
ERROR_COUNT=$(docker logs --since "1h" $CONTAINER_NAME | grep -i error | wc -l)
if [ $ERROR_COUNT -gt 10 ]; then
    echo "$(date): 发现大量错误日志: $ERROR_COUNT" >> $LOG_FILE
fi

# 检查输出文件更新
LATEST_OUTPUT=$(docker exec $CONTAINER_NAME ls -t /app/output/ | head -1)
if [ -n "$LATEST_OUTPUT" ]; then
    FILE_AGE=$(docker exec $CONTAINER_NAME stat -c %Y /app/output/$LATEST_OUTPUT)
    CURRENT_TIME=$(date +%s)
    AGE_DIFF=$((CURRENT_TIME - FILE_AGE))
    
    if [ $AGE_DIFF -gt 7200 ]; then  # 2小时无更新
        echo "$(date): 输出文件超过2小时未更新" >> $LOG_FILE
    fi
fi

echo "$(date): 健康检查完成" >> $LOG_FILE

2. 日志管理

  • 查看实时日志:docker logs -f trend-radar
  • 查看最近 100 行日志:docker logs --tail 100 trend-radar
  • 查看特定时间范围日志:docker logs --since "2025-10-01T00:00:00" trend-radar
  • 日志轮转配置:在 Docker 容器中,日志会自动轮转

3. 系统状态检查

# 使用管理工具检查状态
docker exec -it trend-radar python manage.py status

# 手动执行测试
docker exec -it trend-radar python manage.py run

# 查看配置
docker exec -it trend-radar python manage.py config

# 查看输出文件
docker exec -it trend-radar python manage.py files

六、常见问题与解决方案

6.1 安装部署问题

问题 1:容器无法启动

可能原因及解决方法:

  1. 配置文件缺失
# 检查配置文件是否存在
docker run -it --rm -v ./config:/app/config:ro wantcat/trendradar:latest ls -la /app/config
  1. 配置文件格式错误
# 检查配置文件格式
docker run -it --rm -v ./config:/app/config:ro wantcat/trendradar:latest python -c "
import yaml
try:
    with open('/app/config/config.yaml', 'r') as f:
        yaml.safe_load(f)
    print('配置文件格式正确')
except Exception as e:
    print(f'配置文件错误: {e}')
"
  1. 端口冲突
  • 检查是否有其他程序占用了相关端口
  • 修改配置文件中的端口设置

问题 2:依赖包安装失败

可能原因及解决方法:

  1. 网络问题
  • 尝试使用国内镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
  1. 权限问题
  • 使用sudo命令:sudo pip install -r requirements.txt
  • 或在虚拟环境中安装
  1. 版本不兼容
  • 确认 Python 版本为 3.8+
  • 尝试指定依赖包版本

6.2 运行使用问题

问题 1:无法获取热点数据

可能原因及解决方法:

  1. 网络连接问题
# 检查网络连接
docker run -it --rm wantcat/trendradar:latest ping -c 4 www.baidu.com

# 检查DNS解析
docker run -it --rm wantcat/trendradar:latest nslookup api.github.com
  1. 目标网站反爬措施
  • 调整request_interval参数(建议 2000 毫秒以上)
  • 启用代理(在config.yaml中设置use_proxy: true
  1. 平台配置错误
  • 确认平台 ID 正确
  • 检查平台是否在 newsnow 支持列表中

问题 2:推送失败

可能原因及解决方法:

  1. webhook 配置错误
# 测试飞书webhook
curl -X POST -H "Content-Type: application/json" \
  -d '{"msg_type":"text","content":{"text":"TrendRadar测试消息"}}' \
  $FEISHU_WEBHOOK_URL
  1. 消息内容过长
  • 调整message_batch_size参数
  • 分批发送大消息
  1. 推送时间窗口限制
  • 检查push_window配置
  • 确认当前时间在推送窗口内


6.3 升级与迁移

问题 1:如何升级到新版本

升级流程:

  1. Docker 部署升级
# 停止旧容器
docker stop trend-radar
docker rm trend-radar

# 拉取最新镜像
docker pull sansan0/trendradar:latest

# 启动新容器
docker run -d \
  --name trend-radar \
  -v $(pwd)/config:/app/config:ro \
  -v $(pwd)/output:/app/output \
  wantcat/trendradar:latest


  1. GitHub Actions 升级
  • 进入 Fork 的仓库
  • 点击 "Fetch upstream"→"Fetch and merge"
  • 拉取原仓库最新代码

问题 2:配置文件迁移

迁移步骤:

  1. 备份当前配置
cp config/config.yaml config/config.yaml.backup
cp config/frequency_words.txt config/frequency_words.txt.backup
  1. 查看新版本配置变化
# 对比配置文件差异
diff config/config.yaml config/config.yaml.backup
  1. 手动合并配置
  • 保留自定义设置
  • 应用新版本的改进配置

七、项目扩展与贡献指南

7.1 二次开发准备

如果您想要对 TrendRadar 进行二次开发或功能扩展,可以按照以下步骤准备:

开发环境配置


  1. 创建虚拟环境(推荐)
# 使用venv
python -m venv venv
source venv/bin/activate  # Linux/macOS
.\venv\Scripts\activate   # Windows

# 或使用conda
conda create -n trendradar python=3.10
conda activate trendradar
  1. 安装开发依赖
pip install -r requirements.txt

pip install -r requirements-dev.txt  # 如果有开发依赖
  1. 代码编辑器配置
  • 推荐使用 VS Code 或 PyCharm
  • 配置 Python 解释器为项目环境
  • 安装相应的插件(如 Python、Markdown 等)

7.2 常见扩展方向

基于 TrendRadar 的架构,可以考虑以下扩展方向:

1. 新增数据源支持

  • 支持更多新闻平台
  • 添加 RSS 订阅源支持
  • 集成其他 API 数据源

2. 增强分析功能

  • 添加更多 MCP 分析工具
  • 实现自定义分析算法
  • 支持多语言内容分析

3. 扩展推送渠道

  • 添加更多即时通讯工具支持
  • 集成邮件模板引擎
  • 支持短信推送

4. 界面优化

  • 开发 Web 管理界面
  • 优化移动端显示
  • 添加数据可视化功能

7.3 贡献代码指南

如果您想要为 TrendRadar 项目贡献代码,请遵循以下规范:

贡献流程

  1. Fork 项目到自己的 GitHub 账号
  2. 创建 feature 分支:git checkout -b feature/new-function
  3. 编写代码并添加测试(如果有)
  4. 提交代码前运行代码检查:
flake8 .  # 代码风格检查

pytest   # 运行测试
  1. 提交 PR 并描述您的改动

代码规范

  • 使用 Python 3.10 语法
  • 遵循 PEP8 代码风格
  • 添加必要的注释
  • 编写单元测试

7.4 文档贡献

高质量的文档对开源项目至关重要,如果发现文档中的问题或想要改进文档,可以:

  1. 修正错别字或语法错误
  2. 添加缺失的操作步骤
  3. 更新过时的信息
  4. 贡献使用案例和最佳实践

八、结语与展望

TrendRadar 作为一个轻量、易部署的多平台热点监控工具,通过多平台资讯爬取、关键词精准筛选、多端通知推送等实用功能,有效解决了信息爆炸时代用户 "资讯获取效率低、无关信息干扰多" 的痛点 。

通过本操作手册的详细指导,相信读者已经掌握了从项目下载、安装配置到高级使用的全部技能。无论是选择零门槛的 GitHub Actions 部署,还是稳定可靠的 Docker 部署,亦或是灵活的本地运行方式,都能让读者快速上手并充分利用该工具的各项功能。

未来发展方向

  • 持续扩展支持的平台数量
  • 深化 AI 分析能力,提供更智能的热点洞察
  • 优化用户体验,提供更友好的操作界面
  • 增强系统稳定性和性能