# TopHub数据处理系统 本项目用于处理TopHub网站抓取的临时文件,对数据进行分类并存储到SQLite数据库中。 ## 功能特点 1. **文件解析**:读取临时文件(格式为"日期+时间.txt"),每5行作为一个数据单元 2. **数据提取**:从每个数据单元中提取标题和链接 3. **智能分类**:调用本地API(Ollama)对标题进行自动分类 4. **去重处理**:检查标题+日期是否已存在于数据库中,避免重复录入 5. **进度显示**:使用进度条显示处理进度 6. **分类标准化**:将相似分类合并为标准分类 ## 文件说明 ### 核心脚本 1. **process_temp_files.py** - 主处理脚本 - 解析临时文件 - 调用API进行分类 - 存储到数据库 2. **cleanup_categories.py** - 分类清理脚本 - 清理分类中的特殊字符 - 统一分类格式 3. **standardize_categories.py** - 分类标准化脚本 - 将相似分类合并为标准分类 - 提供分类映射规则 ### 辅助脚本 1. **check_db.py** - 数据库结构检查脚本 2. **test_api.py** - API测试脚本 3. **view_categories.py** - 查看分类示例脚本 ## 使用方法 ### 1. 处理临时文件 ```bash python process_temp_files.py ``` 该脚本会: - 扫描当前目录下的所有临时文件(格式为"日期+时间.txt") - 解析文件内容,提取标题和链接 - 调用本地API对标题进行分类 - 检查并避免重复数据 - 存储到tophub_data.db数据库 ### 2. 清理和标准化分类 ```bash # 清理分类中的特殊字符 python cleanup_categories.py # 标准化分类 python standardize_categories.py ``` ### 3. 查看数据 ```bash # 查看分类示例 python view_categories.py # 检查数据库结构 python check_db.py ``` ## 数据库结构 数据库文件为`tophub_data.db`,包含以下表: 1. **tophub_entries** - 主数据表 - id: 主键 - text_content: 标题内容(非空) - link: 链接 - category: 分类 - scrape_time: 抓取时间 2. **classification_progress** - 分类进度表 - id: 主键 - total_count: 总数量 - processed_count: 已处理数量 - last_updated: 最后更新时间 ## API配置 脚本使用本地Ollama API进行分类: - API地址:http://localhost:11434/api/generate - 模型:gemma3:4b - 请求格式:JSON ## 分类标准 系统支持以下标准分类: 1. 科技 - 新质科技、互联网等 2. 社会 - 社会新闻、生活服务等 3. 体育 - 体育新闻、足球等 4. 历史 - 历史事件、历史人物等 5. 安全 - 安全漏洞、安全科技等 6. 军事 - 军事新闻、国防等 7. 金融 - 金融新闻、市场分析等 8. 购物 - 电商、购物等 9. 游戏 - 游戏新闻等 10. 娱乐 - 娱乐八卦、音乐等 11. 健康 - 健康医疗、健康生活等 12. 其他 - 其他未分类内容 ## 注意事项 1. 确保本地Ollama服务已启动并可访问 2. 临时文件格式必须为"日期+时间.txt" 3. 每个数据单元包含5行:节点ID、分类、标题、链接和分隔线 4. 数据库文件会自动创建,无需手动创建 ## 日志文件 系统会生成以下日志文件: - process_temp_files.log - 主处理日志 - cleanup_categories.log - 分类清理日志 - standardize_categories.log - 分类标准化日志 ## 示例 ### 临时文件格式示例 ``` 节点ID: 102 分类: 宽带山 标题: 女机器人 链接: http://club.kdslife.com/t_11502693.html -------------------------------------------------- 节点ID: 103 分类: 宽带山 标题: 这个应该属于底盘不行吗 链接: http://club.kdslife.com/t_11502686.html -------------------------------------------------- ``` ### 处理结果示例 ``` 标题 '女机器人' 分类为: 科技 标题 '这个应该属于底盘不行吗' 分类为: 其他 ```