azhot¶
azhot - 集成API+WebSocket+MCP的包含30余个平台的热点收集 | 不错过任何热点
| 项目信息 | |
|---|---|
| 仓库 | https://github.com/Maicarons/azhot |
| 在线体验 | https://azhot.maicarons.cc |
| 主要语言 | Go |
| Stars | 2 |
| 类型 | 原创项目 |
| 许可证 | AGPL-3.0 |
| 最近更新 | 2026-02-21 |
| 主题 | go · mcp-server · unocss · vue · websocket |
🌐 Traduções / Translations¶
一个提供各大平台热搜API的聚合服务
🚀 新增:TypeScript 版本¶
我们还提供了基于 TypeScript + Elysia.js 的版本 azhot-ts。如果你更喜欢使用 TypeScript 进行开发,可以查看此版本:
- 使用 TypeScript + Elysia.js 框架构建
- 提供与 Go 版本相同的功能特性
- 支持 WebSocket 实时数据推送
- 支持 AI Model Context Protocol (MCP) 服务器
- 模块化架构,易于扩展新平台
📖 目录¶
项目简介¶
azhot 是一个聚合各大平台热搜数据的API服务,提供统一的接口访问各大平台的热搜内容。项目使用Go语言开发,基于Fiber框架构建,支持实时获取各大平台的热搜榜单数据。
功能特性¶
- 🚀 统一API接口,获取各大平台热搜数据
- ⚡ 高性能,使用
Go+Fiber v2开发,带原生缓存机制 + 访问控制 - 🔄 定时更新热搜数据到数据库 【支持SQLite + MySQL + 可扩展其他DB】
- 📚 Swagger API文档
- 🌐 RESTful API设计
- 📦 自带示例前端
- 🔌 支持WebSocket实时数据推送
- 🤖 新增 支持AI Model Context Protocol (MCP) 服务器
项目结构¶
azhot/
├── all/ # all功能代码
├── app/ # 主程序代码
├── config/ # 读取配置文件
├── docs/ # swagger API文档
├── model/ # 数据库模型
├── mcp/ # AI Model Context Protocol 服务器
├── router/ # 路由配置
├── service/ # 业务逻辑
├── websocket/ # WebSocket功能
├── frontend/ # 模板文件
├── .env # 环境变量
├── Dockerfile # Docker构建文件
├── go.mod # Go模块定义
├── main.go # 主程序文件
└── README.md # 项目说明文档
支持平台¶
| 名称 | 路由名 | 可用性 |
|---|---|---|
| 360doc | 360doc | ✅ |
| 360搜索 | 360search | ✅ |
| AcFun | acfun | ✅ |
| 百度 | baidu | ✅ |
| 哔哩哔哩 | bilibili | ✅ |
| 央视网 | cctv | ✅ |
| CSDN | csdn | ✅ |
| 懂球帝 | dongqiudi | ✅ |
| 豆瓣 | douban | ✅ |
| 抖音 | douyin | ✅ |
| GitHub | github | ✅ |
| 国家地理 | guojiadili | ✅ |
| 历史上的今天 | historytoday | ✅ |
| 虎扑 | hupu | ✅ |
| IT之家 | ithome | ✅ |
| 梨视频 | lishipin | ✅ |
| 南方周末 | nanfang | ✅ |
| 澎湃新闻 | pengpai | ✅ |
| 腾讯新闻 | qqnews | ✅ |
| 夸克 | quark | ✅ |
| 人民网 | renmin | ✅ |
| 搜狗 | sougou | ✅ |
| 搜狐 | souhu | ✅ |
| 今日头条 | toutiao | ✅ |
| V2EX | v2ex | ✅ |
| 网易新闻 | wangyinews | ✅ |
| 微博 | ✅ | |
| 新京报 | xinjingbao | ✅ |
| 知乎 | zhihu | ✅ |
[!WARNING]
2026年1月9日发现CSDN有反爬虫验证机制,可能影响数据获取。[!NOTE]
GitHub和V2EX可能在内地网络环境下无法正常访问,导致相关接口数据获取失败。
快速开始¶
环境要求¶
- Go >= 1.18
- MySQL (可选,用于数据存储)
安装步骤¶
- 克隆项目
git clone https://github.com/maicarons/azhot.git
cd azhot
- 安装依赖
go mod tidy
- 配置环境
## 复制配置文件
cp .env.example .env
## 编辑配置文件
vim .env
- 生成API文档
swag init
- 运行项目
## 开发模式运行
make dev
## 或者构建后运行
make run
使用Docker运行¶
## 构建镜像
docker build -t azhot .
## 运行容器
docker run -d -p 8080:8080 azhot
环境变量配置¶
项目使用 .env 文件进行配置,以下是可用的环境变量:
服务器配置¶
SERVER_HOST: 服务器主机地址,默认为localhostSERVER_PORT: 服务器端口,默认为8080TLS_ENABLED: 是否启用TLS/HTTPS,默认为falseTLS_CERT_FILE: TLS证书文件路径,当TLS_ENABLED为true时必须提供TLS_KEY_FILE: TLS私钥文件路径,当TLS_ENABLED为true时必须提供
数据库配置¶
DB_TYPE: 数据库类型,支持sqlite和mysql,默认为sqliteMYSQL_DSN: MySQL 数据库连接字符串,当DB_TYPE为mysql时生效
MCP 配置¶
MCP_STDIO_ENABLED: 是否启用 STDIO MCP 服务器,默认为falseMCP_HTTP_ENABLED: 是否启用 HTTP MCP 服务器,默认为falseMCP_PORT: HTTP MCP 服务器端口,默认为8081
调试配置¶
DEBUG: 是否启用调试模式,默认为false
CORS 配置¶
CORS_ALLOW_ORIGINS: 允许的跨域请求来源,多个来源用逗号分隔,默认为空表示允许所有来源(仅在生产环境中推荐设置具体来源)
API使用方法¶
HTTP API¶
获取所有平台列表¶
GET /list
获取所有支持的平台信息。
获取特定平台热搜¶
GET /{platform}
例如获取微博热搜:
GET /zhihu
WebSocket API¶
项目支持WebSocket实时数据推送,提供与HTTP API相同的路由结构。
通用WebSocket端点¶
ws://localhost:8080/ws
连接后可以发送消息来订阅或请求特定平台数据。
特定平台WebSocket端点¶
ws://localhost:8080/ws/{platform}
例如连接百度热搜WebSocket:
ws://localhost:8080/ws/baidu
WebSocket消息格式¶
{
"type": "subscribe|request|ping",
"source": "平台名称,如baidu、zhihu等",
"data": {}
}
subscribe: 订阅特定平台的实时数据request: 请求一次性数据ping: 心跳消息
WebSocket端点列表¶
- 通用端点:
ws://localhost:8080/ws - 百度:
ws://localhost:8080/ws/{platform} - 所有平台聚合:
ws://localhost:8080/ws/all - 平台列表:
ws://localhost:8080/ws/list - 历史查询API:
ws://localhost:8080/ws/history/{source}- 获取指定平台的所有历史数据ws://localhost:8080/ws/history/{source}/{date}- 获取指定平台、日期的所有小时数据ws://localhost:8080/ws/history/{source}/{date}/{hour}- 获取指定平台、日期和小时的历史数据- 以及其他所有HTTP API对应的WebSocket端点
API响应格式¶
{
"code": 200,
"icon": "https://static.zhihu.com/static/favicon.ico",
"message": "zhihu",
"obj": [
{
"index": 1,
"title": "2026新年贺词",
"url": "https://www.zhihu.com/search?q=2026新年贺词"
},
// ...
{
"index": 12,
"title": "东北网友发现「小鼻嘎」老鼠",
"url": "https://www.zhihu.com/search?q=东北网友发现「小鼻嘎」老鼠"
}
]
}
MCP服务器¶
项目现在集成了AI Model Context Protocol (MCP) 服务器,允许AI模型和智能助手通过标准化的协议访问热搜数据。
功能特性¶
- 标准化工具接口: 提供标准的MCP工具列表和执行接口
- 热搜数据访问: 支持通过工具获取各平台热搜数据
- 历史数据查询: 支持查询历史热搜数据
- 多种部署模式: 支持HTTP和STDIO两种部署模式
启用MCP服务器¶
在 .env 文件中配置以下选项:
MCP_STDIO_ENABLED=true # 启用STDIO MCP服务器
MCP_HTTP_ENABLED=true # 启用HTTP MCP服务器
MCP_PORT=8081 # HTTP MCP服务器端口
MCP工具列表¶
get_hot_search: 获取指定平台的热搜数据get_all_hot_search: 获取所有平台的热搜数据聚合get_history_data: 获取指定平台的历史热搜数据
MCP端点¶
/mcp/tools- 获取可用工具列表/mcp/tool/execute- 执行指定工具/mcp/prompts- 获取可用提示词列表/mcp/ping- 健康检查端点/mcp/.well-known/mcp-info- MCP服务器元数据
使用示例¶
通过HTTP调用MCP工具:
curl -X POST http://localhost:8080/mcp/tool/execute \
-H "Content-Type: application/json" \
-d '{
"method": "tool/execute",
"params": {
"name": "get_hot_search",
"arguments": {
"platform": "zhihu"
}
},
"id": "req-1",
"jsonrpc": "2.0"
}'
开发贡献¶
我们欢迎任何形式的贡献!如果您想为项目做出贡献,请按照以下步骤操作:
- Fork 本项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
本地开发¶
## 运行测试
dev.sh # 使用Air作为热重启调试工具
CMake构建系统¶
项目现在支持使用CMake进行构建,支持Windows、Linux和macOS平台,并且支持CI/CD集成。
构建命令¶
## 构建当前平台
mkdir build && cd build
cmake ..
cmake --build . --target build
## 运行
cmake --build . --target run
## 开发模式运行
cmake --build . --target dev
## 跨平台构建(预定义平台)
cmake --build . --target build-platform-linux
cmake --build . --target build-platform-windows
cmake --build . --target build-platform-darwin
cmake --build . --target build-platform-linux-arm64
cmake --build . --target build-platform-windows-arm64
## 跨平台构建(使用脚本)
## Linux/macOS:
./build_platform.sh linux
./build_platform.sh windows
./build_platform.sh darwin
## Windows:
build_platform.bat linux
build_platform.bat windows
build_platform.bat darwin
## 打包(为所有支持的平台创建zip包)
cmake --build . --target package
## 构建并打包用于发布的版本(包含所有平台的zip包)
cmake --build . --target release
## 构建多架构版本
cmake --build . --target build-multiarch
## 清理构建产物
cmake --build . --target azhot_clean
## 运行测试
cmake --build . --target test
## 运行所有测试
cmake --build . --target test-all
## 格式化代码
cmake --build . --target fmt
## 整理依赖
cmake --build . --target tidy
## 静态分析
cmake --build . --target staticcheck
## 构建CI版本(不生成swagger文档)
cmake --build . --target build-ci
CI/CD集成¶
项目包含一个自动化的发布流程,支持在GitHub上自动创建发布版本并打包适用于不同平台的zip文件。该流程支持Windows、Linux和macOS三个平台,并为每个平台创建相应的zip压缩包,包含二进制文件和必要的配置文件。
主要特性:
- 自动构建三个平台的二进制文件(Linux amd64, Windows amd64, macOS amd64)
- 为每个平台创建zip包,包含二进制文件、配置文件、README和LICENSE
- 自动发布到GitHub Releases
- 支持本地和CI环境运行
使用独立脚本构建¶
项目还提供了独立的构建脚本,可以在任何环境下使用:
## Linux/macOS
./scripts/build-release.sh [输出目录]
## Windows
./scripts\build-release.bat [输出目录]
这些脚本会构建所有平台的二进制文件并创建zip包。
许可证¶
本项目采用 AGPL-3.0 许可证 - 详情请参阅 LICENSE 文件。
问题反馈¶
如果你在使用过程中遇到问题或有任何建议,欢迎提交 Issue 或 Pull Request。
🌟 如果这个项目对你有帮助,请给我们一个 Star!这将是对我们最大的支持!