项目概述
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 压缩包
- 访问项目 GitHub 仓库:https://github.com/sansan0/TrendRadar
- 点击页面右上角的 "Code" 按钮
- 选择 "Download ZIP" 选项
- 解压下载的压缩包到合适的目录
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:用于检查新版本的 URLshow_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: falsemode:报告模式选择,根据使用场景选择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: trueenable_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是关键词配置文件,支持三种语法和词组功能:
基础语法说明:
- 普通关键词:基础匹配,只要标题包含其中任意一个词就会被捕获
华为
OPPO
苹果- 必须词:使用
+号,必须同时包含普通词和必须词才会被捕获
华为
OPPO
+手机- 过滤词:使用
!号,包含过滤词的新闻会被直接排除
苹果
华为
!水果
!价格词组功能说明:
用空行分隔不同的词组,每个词组独立统计。例如:
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.yaml的platforms字段中添加相应配置,并确保 newsnow 项目支持该平台 。
三、三种部署方式详解
TrendRadar 提供了三种部署方式,覆盖从新手到技术用户的全场景需求:
3.1 GitHub Actions 部署(零门槛,推荐新手)
这是最简单的部署方式,无需服务器、无需本地环境,仅需 GitHub 账号即可,30 秒完成部署 。
部署步骤:
- Fork 项目
- 访问项目 GitHub 仓库:https://github.com/sansan0/TrendRadar
- 点击右上角的 "Fork" 按钮
- 等待几秒钟完成复制
- 配置 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: 收件人邮箱- 配置关键词
- 进入 config 目录,找到
frequency_words.txt文件 - 点击铅笔图标进行编辑
- 添加您关注的关键词(参考前面的语法说明)
- 启用 GitHub Actions
- 点击顶部的 "Actions" 标签
- 找到默认工作流(如 "TrendRadar Auto Run")
- 点击 "Enable workflow" 开启自动化
- 自定义运行频率(可选)
- 打开
.github/workflows/crawler.yml文件 - 找到
on.schedule.cron字段 - 根据需要修改 Cron 表达式(默认每小时运行一次):
# 每30分钟运行
30 * * * *
# 每天早8点运行
0 8 * * *
# 每15分钟运行
*/15 * * * *
# 工作时间(9:00-18:00)每小时运行
0 9-18 * * 1-5- 查看运行结果
- 自动化运行后,点击 "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:https://docs.docker.com/get-docker/
- 安装 Docker Compose(可选):https://docs.docker.com/compose/install/
方式一:使用现成的 Docker 镜像(推荐)
- 拉取镜像(支持 amd64/arm64 架构):
docker pull sansan0/trendradar:latest- 创建必要的目录结构:
mkdir -p config output- 下载配置文件模板:
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/- 启动容器(以飞书推送为例):
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- 完整启动命令(支持多种推送渠道):
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(推荐用于生产环境)
- 创建项目目录并下载配置文件:
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- 编辑
.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- 启动服务:
docker-compose up -d- 查看运行状态:
docker-compose ps方式三:本地构建镜像(适合开发调试)
- 构建镜像:
docker build -t trendradar:local .- 启动容器:
docker run -d \
--name trend-radar \
-v $(pwd)/config:/app/config \
-v $(pwd)/output:/app/output \
trendradar:local3.3 本地运行(适合技术用户,支持自定义扩展)
本地运行适合需要二次开发或调试的用户,需配置 Python 前置环境 。
环境配置:
- 安装 Python 3.8+(建议使用 Python 3.10)
- Windows 用户:下载 Python 安装包并勾选 "Add Python to PATH"
- Linux/macOS 用户:执行
sudo apt install python3.10 python3-pip -y
- 安装依赖包:
pip install -r requirements.txt- 配置文件:
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- 单次运行测试:
python main.py- 添加定时任务(Windows):
- 打开 "任务计划程序"
- 创建基本任务
- 设置触发器(如每小时运行)
- 操作:启动程序
python.exe,参数main.py
- 添加定时任务(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 更好地满足您的个性化需求,以下是一些高级配置优化建议:
性能优化配置:
- 爬虫优化
crawler:
request_interval: 2000 # 2秒(根据目标网站调整,避免过于频繁)
enable_crawler: true
use_proxy: false # 是否启用代理
default_proxy: "http://127.0.0.1:10086"- 通知优化
notification:
message_batch_size: 4000 # 消息分批大小(字节)
dingtalk_batch_size: 20000 # 钉钉消息分批大小
feishu_batch_size: 29000 # 飞书消息分批大小
batch_send_interval: 3 # 批次发送间隔(秒)- 推送时间窗口控制
push_window:
enabled: true # 启用时间窗口控制
time_range:
start: "09:00" # 工作时间推送
end: "18:00"
once_per_day: true # 每天只推送一次
push_record_retention_days: 7 # 推送记录保留7天- 权重配置调整
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 分析:
- 下载安装 Cherry Studio
- 访问官网:https://cherry-ai.com/
- 根据系统下载对应版本(Windows 用户选择.exe 格式,MacOS 使用.dmg 文件)
- 安装完成后启动
- 配置 Cherry Studio
- 点击左下角齿轮图标进入 "模型服务" 设置
- 选择硅基流动服务,填入 API 密钥
- 配置模型参数(温度值 0.1-2.0,最大输出长度 2048-4096)
- 在 TrendRadar 中启用 MCP 功能
ai_analysis:
enable: true
service_url: "http://localhost:8008" # 根据实际配置
api_key: "your-api-key"- 使用 AI 分析功能
- 重启 TrendRadar 服务
- 爬取的热点数据会自动发送至 AI 服务
- 分析结果通过通知渠道推送
- 可以通过自然语言对话查询新闻数据
5.3 自定义平台扩展
如果您需要监控 TrendRadar 默认支持之外的平台,可以按照以下步骤进行扩展:
1. 确认平台支持
TrendRadar 的数据来源于 newsnow 项目,因此需要先确认 newsnow 支持您要添加的平台。可以访问:https://github.com/ourongxing/newsnow 查看支持的平台列表。
2. 添加平台配置
在config/config.yaml的platforms字段中添加新平台:
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/output3. 网络安全
- 建议在防火墙中限制访问端口
- 使用 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_FILE2. 日志管理
- 查看实时日志:
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:容器无法启动
可能原因及解决方法:
- 配置文件缺失
# 检查配置文件是否存在
docker run -it --rm -v ./config:/app/config:ro wantcat/trendradar:latest ls -la /app/config- 配置文件格式错误
# 检查配置文件格式
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}')
"- 端口冲突
- 检查是否有其他程序占用了相关端口
- 修改配置文件中的端口设置
问题 2:依赖包安装失败
可能原因及解决方法:
- 网络问题
- 尝试使用国内镜像源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
- 权限问题
- 使用
sudo命令:sudo pip install -r requirements.txt - 或在虚拟环境中安装
- 版本不兼容
- 确认 Python 版本为 3.8+
- 尝试指定依赖包版本
6.2 运行使用问题
问题 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- 目标网站反爬措施
- 调整
request_interval参数(建议 2000 毫秒以上) - 启用代理(在
config.yaml中设置use_proxy: true)
- 平台配置错误
- 确认平台 ID 正确
- 检查平台是否在 newsnow 支持列表中
问题 2:推送失败
可能原因及解决方法:
- webhook 配置错误
# 测试飞书webhook
curl -X POST -H "Content-Type: application/json" \
-d '{"msg_type":"text","content":{"text":"TrendRadar测试消息"}}' \
$FEISHU_WEBHOOK_URL- 消息内容过长
- 调整
message_batch_size参数 - 分批发送大消息
- 推送时间窗口限制
- 检查
push_window配置 - 确认当前时间在推送窗口内
6.3 升级与迁移
问题 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- GitHub Actions 升级
- 进入 Fork 的仓库
- 点击 "Fetch upstream"→"Fetch and merge"
- 拉取原仓库最新代码
问题 2:配置文件迁移
迁移步骤:
- 备份当前配置
cp config/config.yaml config/config.yaml.backup
cp config/frequency_words.txt config/frequency_words.txt.backup- 查看新版本配置变化
# 对比配置文件差异
diff config/config.yaml config/config.yaml.backup- 手动合并配置
- 保留自定义设置
- 应用新版本的改进配置
七、项目扩展与贡献指南
7.1 二次开发准备
如果您想要对 TrendRadar 进行二次开发或功能扩展,可以按照以下步骤准备:
开发环境配置:
- 创建虚拟环境(推荐)
# 使用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- 安装开发依赖
pip install -r requirements.txt
pip install -r requirements-dev.txt # 如果有开发依赖- 代码编辑器配置
- 推荐使用 VS Code 或 PyCharm
- 配置 Python 解释器为项目环境
- 安装相应的插件(如 Python、Markdown 等)
7.2 常见扩展方向
基于 TrendRadar 的架构,可以考虑以下扩展方向:
1. 新增数据源支持
- 支持更多新闻平台
- 添加 RSS 订阅源支持
- 集成其他 API 数据源
2. 增强分析功能
- 添加更多 MCP 分析工具
- 实现自定义分析算法
- 支持多语言内容分析
3. 扩展推送渠道
- 添加更多即时通讯工具支持
- 集成邮件模板引擎
- 支持短信推送
4. 界面优化
- 开发 Web 管理界面
- 优化移动端显示
- 添加数据可视化功能
7.3 贡献代码指南
如果您想要为 TrendRadar 项目贡献代码,请遵循以下规范:
贡献流程:
- Fork 项目到自己的 GitHub 账号
- 创建 feature 分支:
git checkout -b feature/new-function - 编写代码并添加测试(如果有)
- 提交代码前运行代码检查:
flake8 . # 代码风格检查
pytest # 运行测试- 提交 PR 并描述您的改动
代码规范:
- 使用 Python 3.10 语法
- 遵循 PEP8 代码风格
- 添加必要的注释
- 编写单元测试
7.4 文档贡献
高质量的文档对开源项目至关重要,如果发现文档中的问题或想要改进文档,可以:
- 修正错别字或语法错误
- 添加缺失的操作步骤
- 更新过时的信息
- 贡献使用案例和最佳实践
八、结语与展望
TrendRadar 作为一个轻量、易部署的多平台热点监控工具,通过多平台资讯爬取、关键词精准筛选、多端通知推送等实用功能,有效解决了信息爆炸时代用户 "资讯获取效率低、无关信息干扰多" 的痛点 。
通过本操作手册的详细指导,相信读者已经掌握了从项目下载、安装配置到高级使用的全部技能。无论是选择零门槛的 GitHub Actions 部署,还是稳定可靠的 Docker 部署,亦或是灵活的本地运行方式,都能让读者快速上手并充分利用该工具的各项功能。
未来发展方向:
- 持续扩展支持的平台数量
- 深化 AI 分析能力,提供更智能的热点洞察
- 优化用户体验,提供更友好的操作界面
- 增强系统稳定性和性能