# 热点雷达 **Repository Path**: deepin20/HotRadar ## Basic Information - **Project Name**: 热点雷达 - **Description**: 热点雷达 (HotRadar):多源热点聚合与监控工具,实时抓取各大平台热榜,智能聚合、评分、突增检测,并提供桌面/Web可视化界面。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-15 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📡 热点雷达 (HotRadar) 多源热点聚合与监控工具,实时抓取各大平台热榜,智能聚合、评分、突增检测,并提供桌面/Web可视化界面。 ![截图](gui/tkinter_app/resources/icon.png) --- ## ✨ 功能特性 - **多源抓取**:支持微博、百度、今日头条、知乎、澎湃新闻等平台(可扩展) - **智能过滤**:基于黑白名单过滤新闻/娱乐内容,自动归类国内/国际 - **事件聚合**:利用 Jieba 分词提取关键词,通过相似度聚合相似新闻 - **热度评分**:综合排名与媒体覆盖度,计算事件热度(0~100) - **突增检测**:实时检测热度暴涨,触发突发警报 - **多端界面**: - 🖥️ Tkinter 桌面客户端(推荐) - 🌐 Web 服务(Flask) - **通知机制**:桌面弹窗(plyer)与企业微信 Webhook - **数据持久化**:SQLite 存储,支持历史趋势分析 - **导出功能**:一键导出 Excel 报表 --- ## 🚀 快速开始 ### 环境要求 - Python 3.9+ - 操作系统:Linux(deepin/Ubuntu)、Windows、macOS(部分功能受限) ### 从源码运行(推荐) 1. **克隆或下载本项目** ```bash cd /path/to/HotRadar ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 3. **初始化数据库** ```bash python scripts/init_db.py ``` 4. **启动桌面客户端** ```bash python gui/tkinter_app/main.py ``` 5. **(可选)启动 Web 服务** ```bash python gui/web/app.py ``` 访问 `http://127.0.0.1:5000` 查看热点。 --- ### 通过 DEB 包安装(deepin/Ubuntu) > ⚠️ 注意:DEB 包目前为实验性支持,若启动报错,建议改用源码运行。 1. **生成 DEB 包** ```bash python build_deb.py ``` 2. **安装** ```bash sudo dpkg -i hotradar_1.0.0_all.deb sudo apt install -f # 解决依赖 ``` 3. **启动** ```bash hotradar ``` 所有用户数据(数据库、日志)将保存在 `~/.local/share/hotradar/`。 --- ## 📖 使用说明 ### 桌面客户端(Tkinter) - **搜索**:输入关键词过滤热点 - **排序**:点击“按热度排序”切换升序/降序 - **双击热点**:查看详情(标题、热度、来源、关键词等) - **导出**:点击“导出Excel”保存当前列表为 `热点历史.xlsx` ### Web 界面 - 访问 `http://127.0.0.1:5000` 查看热点列表 - 支持按区域(国内/国际)筛选(需自行扩展前端) ### 后台扫描 - 默认每 60 秒自动抓取一次(通过 `.env` 中的 `FETCH_INTERVAL` 调整) - 扫描到突发新闻时会触发桌面/企业微信通知 --- ## ⚙️ 配置 项目根目录下的 `.env` 文件控制主要参数: | 变量 | 说明 | 默认值 | |------|------|--------| | `LANGUAGE` | 界面语言 (`zh`/`en`) | `zh` | | `FETCH_INTERVAL` | 抓取间隔(秒) | `60` | | `NOTIFY_DESKTOP` | 启用桌面通知 | `1` | | `NOTIFY_WECHAT` | 启用企业微信通知 | `0` | | `WECHAT_WEBHOOK_URL` | 企业微信机器人 Webhook 地址 | (空) | | `DATABASE_PATH` | 数据库路径(可自定义) | `data/hotradar.db` | | `LOG_LEVEL` | 日志级别 | `INFO` | 更多参数见 `config/settings.py`。 --- ## 🧩 扩展开发 ### 添加新数据源 1. 在 `config/sources.json` 中增加平台配置(含 `parser` 名称) 2. 在 `core/parser.py` 中用 `@register_parser` 装饰器实现解析函数 3. 解析函数需返回列表,每个元素含 `title`、`rank`、`hot_value`、`url` 等字段 ### 调整过滤规则 编辑 `core/filter.py` 中的 `WHITE_LIST` 和 `BLACK_LIST`。 ### 自定义热度评分 修改 `core/scorer.py` 中的 `compute_heat_score` 函数。 --- ## 🐛 常见问题 ### 1. 启动后无数据? - 检查网络连接,确保数据源可访问。 - 查看日志 `data/logs/hotradar.log` 或 `~/.local/share/hotradar/logs/hotradar.log`。 - 尝试放宽过滤(临时将 `core/filter.py` 中的 `is_news` 返回 `True`)。 ### 2. DEB 包安装后点击菜单无反应? - 请优先使用源码运行方式(见上)。 - 若仍想使用 DEB,执行 `hotradar` 查看终端错误,根据提示修复(通常为权限或路径问题)。 ### 3. 如何清除所有数据? - 删除数据库文件(`data/hotradar.db` 或 `~/.local/share/hotradar/hotradar.db`)和 `data/logs/` 目录。 --- ## 📝 依赖 核心依赖见 `requirements.txt`,主要包含: - `requests` – HTTP 请求 - `jieba` – 中文分词 - `plyer` – 桌面通知 - `flask` – Web 服务 - `python-dotenv` – 环境变量管理 - `pandas` + `openpyxl` – Excel 导出 - `beautifulsoup4` – HTML 解析 --- ## 🤝 贡献 欢迎提交 Issue 和 Pull Request。请遵循现有代码风格,并确保功能测试通过。 --- ## 📄 许可证 本项目采用 MIT 许可证,详见 [LICENSE](LICENSE) 文件。 --- **Made with ❤️ by Your Name**