# xhs_collection **Repository Path**: AnthonyLeeDevelopment/xhs_collection ## Basic Information - **Project Name**: xhs_collection - **Description**: 用于采集小红书数据可视化的采集工具 - **Primary Language**: Python - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-02-05 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小红书数据管理系统开发文档 ## 1. 项目概述 小红书数据管理系统是一个基于 **Flask** 和 **SQLite** 的 Web 应用,用于管理小红书笔记、评论等数据。系统提供以下功能: - 笔记数据管理(增删改查) - 评论数据展示 - 笔记类型统计分析 - 位置分析 - 数据导入导出 - 数据可视化展示 - 爬虫集成 ## 2. 安装与使用 ### 2.1环境要求 - Python 3.7+ - 依赖包: Flask, SQLite3, Selenium, Gradio等 - 浏览器: Chrome或Firefox ### 2.2安装步骤 1. 克隆仓库 ```bash git clone https://gitee.com/Andy688/xhs_collection.git cd xhs_collection-master ``` 2. 设置清华源 ```bash pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple ``` 3. 配置conda虚拟环境 ```bash conda create -n hy python=3.10.16 -y ``` 4. 激活环境 ```bash conda activate hy ``` 5. 安装依赖 ```bash pip install -r requirements.txt ``` 6. 启动应用 ```bash python app.py ``` 应用将自动在默认浏览器中打开,访问地址为http://localhost:5000 ## 3. 效果展示 ### 3.1系统界面预览 ![效果图1](/static/img/效果图1.png) ![效果图2](/static/img/效果图2.png) ![效果图3](/static/img/效果图3.png) ## 4. 系统架构 ### 4.1 技术栈 - **后端框架**: Flask (Python) - **数据库**: SQLite - **前端技术**: HTML, CSS, JavaScript, Bootstrap 4 - **图标库**: Font Awesome - **数据可视化**: Chart.js - **爬虫技术**: Selenium, Gradio ### 4.2 目录结构 ``` - app.py # 主应用程序入口 - api/ # API模块目录 |- __init__.py # API包初始化文件 |- db_sqlite_manager.py # 数据库管理模块 |- xiaohongshu.py # 小红书数据管理蓝图 |- database_api.py # 数据库API蓝图 |- crawler.py # 爬虫管理蓝图 |- xhs_crawler_bridge.py # 爬虫桥接模块 |- init_db.py # 数据库初始化脚本 |- db_ops.py # 数据库操作辅助函数 |- check_db.py # 数据库检查工具 |- import_sql_to_db.py # SQL导入工具 |- migrate_xhs_crawler.py # 爬虫迁移工具 - templates/ # 模板文件 |- xhs/ # 小红书模块模板 |- layout.html # 基础布局 |- index.html # 首页 |- notes.html # 笔记列表 |- note_detail.html # 笔记详情 |- note_form.html # 笔记表单(新增/编辑) |- note_types.html # 笔记类型统计 |- tasks.html # 采集任务列表 |- task_detail.html # 任务详情 |- task_form.html # 任务表单 |- users.html # 用户列表 |- user_detail.html # 用户详情 |- locations.html # 位置分析 |- location_detail.html # 位置详情 |- statistics.html # 统计分析 |- export.html # 数据导出 |- import.html # 数据导入 |- crawler.html # 爬虫管理界面 |- errors/ # 错误页面 |- 404.html # 404错误页面 |- 500.html # 500错误页面 - static/ # 静态资源 |- css/ # CSS样式 |- js/ # JavaScript脚本 |- img/ # 图片资源 - xhs_crawler/ # 小红书爬虫模块 |- xhs_crawler_gradio.py # 爬虫Gradio界面 |- setup_browser.py # 浏览器设置 |- collect_notes.py # 笔记采集 |- collect_comments.py # 评论采集 |- collect_data.py # 数据采集 |- ... # 其他爬虫相关文件 - xhs_database.db # SQLite数据库文件 - requirements.txt # 项目依赖 ``` ## 5. 模块功能说明 ### 5.1 数据库管理模块 (api/db_sqlite_manager.py) - **功能名称**: XHSDataDB - **主要功能**: - 数据库连接与管理 - 笔记数据的CRUD操作 - 评论数据管理 - 采集任务管理 - 用户信息管理 - 位置数据分析 - 数据统计与分析 - 数据导入导出 - **核心方法**: - **笔记管理**: - `get_all_notes()`: 获取所有笔记 - `get_note_by_id()`: 根据ID获取笔记 - `get_notes_by_keyword()`: 根据关键词获取笔记 - `add_note()`: 添加笔记 - `update_note()`: 更新笔记 - `delete_note()`: 删除笔记 - **评论管理**: - `get_comments_by_note()`: 获取笔记评论 - `add_comment()`: 添加评论 - **任务管理**: - `get_all_tasks()`: 获取所有采集任务 - `get_task_by_id()`: 获取任务详情 - `add_task()`: 添加采集任务 - `update_task()`: 更新任务状态 - `delete_task()`: 删除任务 - **用户管理**: - `get_all_users()`: 获取所有用户 - `get_user_by_id()`: 获取用户详情 - `add_or_update_user()`: 添加或更新用户 - **位置分析**: - `get_all_locations()`: 获取所有位置 - `get_locations_from_edit_time()`: 从笔记编辑时间中提取位置 - `add_or_update_location()`: 添加或更新位置信息 - **统计分析**: - `get_keyword_statistics()`: 关键词统计 - `get_note_types_statistics()`: 笔记类型统计 - `get_location_statistics()`: 位置统计 - `get_dashboard_statistics()`: 获取仪表盘统计数据 - **数据导入导出**: - `export_to_json()`: 导出数据到JSON文件 - `import_from_json()`: 从JSON文件导入数据 ### 5.2 小红书数据管理模块 (api/xiaohongshu.py) - **功能名称**: xhs_bp - **主要功能**: - 提供Web界面访问各功能 - 处理HTTP请求和响应 - 数据校验和处理 - 页面渲染 - **核心路由**: - **首页与总览**: - `/`: 首页,显示统计信息和快速导航 - `/data-screen`: 数据大屏页面 - **笔记管理**: - `/notes`: 笔记列表,支持关键词筛选 - `/notes/`: 笔记详情 - `/notes/add`: 添加笔记 - `/notes//edit`: 编辑笔记 - `/notes//delete`: 删除笔记 - **类型分析**: - `/note-types`: 笔记类型统计 - **任务管理**: - `/tasks`: 采集任务列表 - `/tasks/add`: 添加采集任务 - `/tasks/`: 任务详情 - `/tasks//delete`: 删除任务 - **用户管理**: - `/users`: 用户列表 - `/users/`: 用户详情 - **位置分析**: - `/locations`: 位置分析列表 - `/locations/`: 位置详情 - **数据导入导出**: - `/export`: 数据导出页面 - `/import`: 数据导入页面 - **统计分析**: - `/statistics`: 数据统计分析页面 ### 5.3 数据库API模块 (api/database_api.py) - **功能名称**: db_api - **主要功能**: - 提供RESTful API接口 - 数据的JSON格式交换 - 支持前后端分离开发 - **核心API**: - **任务相关**: - `GET /api/tasks`: 获取所有任务 - `GET /api/tasks/`: 获取单个任务 - `POST /api/tasks`: 创建任务 - `PUT /api/tasks/`: 更新任务 - `DELETE /api/tasks/`: 删除任务 - **笔记相关**: - `GET /api/notes`: 获取所有笔记 - `GET /api/notes/`: 获取单个笔记 - `POST /api/notes`: 创建笔记 - **用户相关**: - `GET /api/users`: 获取所有用户 - `GET /api/users/`: 获取单个用户 - **位置相关**: - `GET /api/locations`: 获取所有位置 - `GET /api/locations/`: 获取单个位置 - **统计相关**: - `GET /api/statistics/dashboard`: 获取仪表盘统计 - `GET /api/statistics/keywords`: 获取关键词统计 - `GET /api/statistics/locations`: 获取位置统计 ### 5.4 爬虫管理模块 (api/crawler.py) - **功能名称**: crawler_bp - **主要功能**: - 爬虫界面集成 - 爬虫状态管理 - 爬虫启动与监控 - **核心路由**: - `/crawler`: 爬虫管理界面 - `/crawler/status`: 获取爬虫状态 - `/crawler/restart`: 重启爬虫 ### 5.5 爬虫桥接模块 (api/xhs_crawler_bridge.py) - **功能名称**: 爬虫桥接 - **主要功能**: - 连接Flask应用与爬虫模块 - 管理爬虫进程 - 监控爬虫状态 - **核心方法**: - `launch_crawler()`: 启动爬虫 - `get_crawler_status()`: 获取爬虫状态 - `get_crawler_url()`: 获取爬虫URL - `stop_crawler()`: 停止爬虫 ### 5.6 主应用模块 (app.py) - **功能名称**: Flask应用主程序 - **主要功能**: - 初始化Flask应用和数据库连接 - 注册蓝图和路由 - 配置错误处理 - 启动Web服务 - 自动打开浏览器访问应用 - **核心方法**: - `create_app()`: 创建并配置Flask应用 - `open_browser()`: 自动打开浏览器访问应用 ## 6. 数据库配置与说明 ### 6.1 SQLite数据库 - **数据库文件**: `xhs_database.db` - **数据库表结构**: - `notes`: 存储笔记数据 - `comments`: 存储评论数据 - `collection_tasks`: 存储采集任务数据 - `user_data`: 存储用户数据 - `locations`: 存储位置数据 ### 6.2 数据库初始化 - **初始化脚本**: `api/init_db.py` - **功能说明**: 创建必要的数据库表结构 - **使用方法**: 直接运行脚本或通过Web界面初始化 ## 7. 数据导入导出说明 ### 7.1 数据导入 - **功能路径**: `/import` - **支持格式**: JSON - **使用方法**: 1. 访问 `http://localhost:5000/import` 2. 选择 JSON 格式的数据文件 3. 点击"导入"按钮 - **导入注意事项**: - 导入会清空现有数据 - JSON 格式必须符合系统要求的结构 ### 7.2 数据导出 - **功能路径**: `/export` - **支持格式**: - JSON 格式: 完整数据,可用于备份和导入 - CSV 格式: 表格数据,适用于 Excel 分析 - **使用方法**: 1. 访问 `http://localhost:5000/export` 2. 选择导出格式和数据类型 3. 点击"开始导出"按钮 ## 8. 爬虫模块说明 ### 8.1 爬虫功能 - **功能路径**: `/crawler` - **主要功能**: - 采集小红书笔记数据 - 采集评论数据 - 用户数据采集 - **技术实现**: - 基于Selenium的自动化爬虫 - Gradio提供交互界面 - 数据直接存储到SQLite数据库 ### 8.2 爬虫使用流程 1. 访问 `http://localhost:5000/crawler` 2. 系统自动启动爬虫服务 3. 在爬虫界面配置采集参数 4. 启动采集任务 5. 数据自动保存到数据库 ## 9. 系统启动与配置 ### 9.1 环境要求 - Python 3.7+ - 依赖包: Flask, SQLite3, Selenium, Gradio等 - 浏览器: Chrome或Firefox ### 9.2 启动系统 ```bash python app.py ``` - 系统将自动在默认浏览器中打开应用页面 - 默认访问地址: `http://localhost:5000` ### 9.3 后台管理账号密码 | 账号 | 密码 | |-------|-----| | admin | 123456 | ### 9.4 配置说明 - **会话配置**: 会话有效期为7天 - **数据库路径**: 项目根目录下的`xhs_database.db` - **爬虫端口**: 默认7860 ## 10. 开发与扩展 ### 10.1 添加新功能 1. 在api目录下创建新的模块文件 2. 定义新的蓝图和路由 3. 在app.py中注册新蓝图 4. 创建对应的模板文件 ### 10.2 数据库扩展 1. 在api/db_sqlite_manager.py中添加新的数据库操作方法 2. 在api/init_db.py中添加新的表结构 3. 更新相关路由和API ### 10.3 前端开发 1. 在templates目录下创建或修改模板 2. 在static目录下添加CSS和JavaScript文件 3. 使用Bootstrap 4和Chart.js进行界面美化和数据可视化 ## 11. 常见问题与解决方案 ### 11.1 数据库问题 - **问题**: 数据库表不存在 - **解决**: 运行api/init_db.py初始化数据库 ### 11.2 爬虫问题 - **问题**: 爬虫启动失败 - **解决**: 检查xhs_crawler目录是否存在,确保路径正确 ### 11.3 浏览器自动打开问题 - **问题**: 浏览器未自动打开 - **解决**: 手动访问http://localhost:5000,或检查webbrowser模块是否正常工作 ## 12 赞助支持 如果您觉得这个项目对您有所帮助,欢迎通过以下方式支持我们的开发工作:
微信支付 支付宝 闲鱼店铺
### 12.1 赞助商 12. 🖥️现在加入雨云立即领取首月5折新人优惠,内含大量免备案极速三网服务器 点击这里访问雨云官网。 2. 🛎️承接毕设、微信小程序、前后端项目开发,欢迎有需求的老板来谈谈快速访问 3. 📱全国正规大流量卡免费包邮快速访问