Files
tophux_scrape/README.md
xiaji 25da264413 第一次提交。
其中爬取是tophub_scraper.py
数据入库是 tophub_add_data_to_db.py
查看当前数据内容是 db_viewer.py
2025-11-09 17:20:44 +08:00

149 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TopHub数据处理系统
本项目用于处理TopHub网站抓取的临时文件对数据进行分类并存储到SQLite数据库中。
## 功能特点
1. **文件解析**:读取临时文件(格式为"日期+时间.txt"每5行作为一个数据单元
2. **数据提取**:从每个数据单元中提取标题和链接
3. **智能分类**调用本地APIOllama对标题进行自动分类
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
--------------------------------------------------
```
### 处理结果示例
```
标题 '女机器人' 分类为: 科技
标题 '这个应该属于底盘不行吗' 分类为: 其他
```