# GetQzonehistoryWeb **Repository Path**: JiaHuaWork/GetQzonehistoryWeb ## Basic Information - **Project Name**: GetQzonehistoryWeb - **Description**: 该项目通过获取QQ空间的历史消息列表来获取该账号下发布的所有说说(当然消息列表中没有的就获取不到,例如一些仅自己可见的说说) - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-18 - **Last Updated**: 2025-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GetQzonehistory - QQ空间历史说说查看器 一个前后端分离的QQ空间历史说说备份工具,支持通过Web界面查看、筛选和导出QQ空间的历史说说。 ## 📋 目录 - [免责声明](#免责声明) - [项目介绍](#项目介绍) - [项目架构](#项目架构) - [功能特性](#功能特性) - [技术栈](#技术栈) - [目录结构](#目录结构) - [快速开始](#快速开始) - [API文档](#api文档) - [使用说明](#使用说明) - [开发说明](#开发说明) - [参考](#参考) ## ⚠️ 免责声明
免责声明【必读】 本工具仅供学习和技术研究使用,不得用于任何商业或非法行为,否则后果自负。 本工具的作者不对本工具的安全性、完整性、可靠性、有效性、正确性或适用性做任何明示或暗示的保证,也不对本工具的使用或滥用造成的任何直接或间接的损失、责任、索赔、要求或诉讼承担任何责任。 本工具的作者保留随时修改、更新、删除或终止本工具的权利,无需事先通知或承担任何义务。 本工具的使用者应遵守相关法律法规,尊重QQ的版权和隐私,不得侵犯QQ或其他第三方的合法权益,不得从事任何违法或不道德的行为。 本工具的使用者在下载、安装、运行或使用本工具时,即表示已阅读并同意本免责声明。如有异议,请立即停止使用本工具,并删除所有相关文件。
## 📖 项目介绍 本项目通过模拟登录QQ空间来获取历史说说列表,提供Web界面进行查看、筛选和导出。支持: - 🔐 QQ扫码登录 - 📱 移动端适配 - 🔍 多条件筛选(关键词、日期范围、图片、评论) - 📊 数据统计(总说说数、含图片数、评论数等) - 📥 导出功能(Excel、HTML格式) - 🖼️ 高清图片预览 - 💬 评论查看 **注意**:只能获取可见的说说,一些仅自己可见或已删除的说说无法获取。 ## 🏗️ 项目架构 本项目采用前后端分离架构: ``` ┌─────────────┐ HTTP/API ┌─────────────┐ │ Frontend │ ◄─────────────────────► │ Backend │ │ (Vue 3) │ │ (Node.js) │ │ │ │ │ │ Port: 5173 │ │ Port: 3000 │ └─────────────┘ └─────────────┘ │ │ │ │ └─────────────────┬───────────────────────┘ │ ┌─────▼─────┐ │ QQ Space │ │ API │ └────────────┘ ``` ### 前端 (Frontend) - **框架**: Vue 3 + TypeScript - **构建工具**: Vite - **UI组件库**: Element Plus - **HTTP客户端**: Axios - **Excel导出**: xlsx ### 后端 (Backend) - **运行时**: Node.js - **框架**: Express - **语言**: TypeScript - **HTTP客户端**: Axios ## ✨ 功能特性 ### 前端功能 - ✅ QQ扫码登录界面 - ✅ 说说列表展示(卡片式布局) - ✅ 多条件筛选(关键词、日期、图片、评论) - ✅ 数据统计面板 - ✅ 高清图片预览(支持点击放大) - ✅ 评论查看 - ✅ Excel导出 - ✅ HTML导出(带样式) - ✅ 移动端适配 - ✅ 响应式设计 ### 后端功能 - ✅ QQ登录二维码生成 - ✅ 登录状态检查 - ✅ 说说列表获取 - ✅ 图片代理(解决防盗链) - ✅ 数据缓存(本地文件) ## 🛠️ 技术栈 ### 前端 - Vue 3.5+ - TypeScript 5.9+ - Vite 7.2+ - Element Plus 2.11+ - Axios 1.13+ - xlsx 0.18+ ### 后端 - Node.js - Express 5.1+ - TypeScript 5.9+ - Axios 1.13+ - Cheerio 1.1+ ## 📁 目录结构 ``` GetQzonehistory/ ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── App.vue # 主应用组件 │ │ ├── main.ts # 入口文件 │ │ ├── types/ # TypeScript类型定义 │ │ ├── utils/ # 工具函数(API调用) │ │ └── components/ # 组件 │ ├── public/ # 静态资源 │ ├── package.json # 前端依赖 │ └── vite.config.ts # Vite配置 │ ├── backend/ # 后端项目 │ ├── src/ │ │ ├── index.ts # 服务器入口 │ │ ├── config/ # 配置文件 │ │ └── util/ # 工具模块 │ │ ├── loginUtil.ts # 登录相关 │ │ ├── getAllMomentsUtil.ts # 获取说说 │ │ ├── requestUtil.ts # 请求工具 │ │ └── toolsUtil.ts # 通用工具 │ ├── resource/ # 资源目录(缓存数据) │ │ └── fetch-all/ # 按QQ号存储的缓存 │ ├── package.json # 后端依赖 │ └── tsconfig.json # TypeScript配置 │ ├── util/ # Python工具(原版) │ ├── LoginUtil.py │ ├── GetAllMomentsUtil.py │ └── ... │ ├── main.py # Python主程序(原版) ├── app.py # Python Flask API(原版) ├── requirements.txt # Python依赖 └── README.MD # 本文件 ``` ## 🚀 快速开始 ### 环境要求 - **Node.js**: >= 16.0.0 - **npm**: >= 8.0.0 或 **yarn**: >= 1.22.0 ### 安装步骤 #### 1. 克隆项目 ```bash git clone https://github.com/LibraHp/GetQzonehistory.git cd GetQzonehistory ``` #### 2. 安装后端依赖 ```bash cd backend npm install # 或使用 yarn yarn install ``` #### 3. 安装前端依赖 ```bash cd ../frontend npm install # 或使用 yarn yarn install ``` ### 运行项目 #### 方式一:开发模式(推荐) **终端1 - 启动后端服务** ```bash cd backend npm start # 或 yarn start ``` 后端服务将在 `http://localhost:3000` 启动 **终端2 - 启动前端开发服务器** ```bash cd frontend npm run dev # 或 yarn dev ``` 前端服务将在 `http://localhost:5173` 启动 #### 方式二:生产模式 **构建前端** ```bash cd frontend npm run build # 或 yarn build ``` 构建产物在 `frontend/dist` 目录 **启动后端(生产模式)** ```bash cd backend npm run build node dist/index.js ``` ### 访问应用 打开浏览器访问:`http://localhost:5173` ## 📡 API文档 ### 基础URL ``` http://localhost:3000/api ``` ### 接口列表 #### 1. 获取登录二维码 ```http GET /api/login/qrcode ``` **响应示例** ```json { "qrsig": "xxx", "qrCode": "base64编码的图片数据" } ``` #### 2. 检查登录状态 ```http POST /api/login/check Content-Type: application/json { "qrsig": "xxx" } ``` **响应示例** ```json { "result": { "loginSuccess": true, "cookies": { "uin": "o123456789", "skey": "@xxx", "p_skey": "xxx", ... } } } ``` #### 3. 获取说说列表 ```http POST /api/moments Content-Type: application/json { "cookies": { "uin": "o123456789", "skey": "@xxx", "p_skey": "xxx", ... } } ``` **响应示例** ```json [ { "createTime": "2024年01月01日 12:00:00", "content": "昵称 :说说内容", "pictures": "url1,url2,url3", "comments": [ { "createTime": "2024年01月01日 13:00:00", "content": "评论内容", "nickname": "评论者昵称", "uin": "123456789" } ] } ] ``` #### 4. 图片代理 ```http GET /api/image-proxy?url={图片URL} ``` 用于解决QQ空间图片防盗链问题。 ## 📖 使用说明 ### 1. 登录 1. 打开应用,点击"获取登录二维码" 2. 使用手机QQ扫描二维码 3. 在手机上确认登录 4. 系统自动获取说说列表 ### 2. 查看说说 - 登录成功后,自动显示说说列表 - 使用顶部筛选栏进行筛选: - **关键词搜索**:搜索说说内容或昵称 - **日期范围**:选择开始和结束日期 - **仅含图片**:只显示带图片的说说 - **仅含评论**:只显示有评论的说说 ### 3. 导出数据 1. 切换到"导出设置"标签 2. 选择导出类型(Excel 或 HTML) 3. 选择包含内容(评论、图片) 4. 选择导出范围(全部数据 或 当前筛选) 5. 点击"开始导出" ### 4. 图片查看 - 点击说说中的图片可以预览 - 支持多图浏览 - 图片通过后端代理加载,解决防盗链问题 ## 💻 开发说明 ### 前端开发 ```bash cd frontend npm run dev ``` 前端代码热重载,修改后自动刷新。 ### 后端开发 ```bash cd backend npm start ``` 使用 `ts-node` 直接运行 TypeScript 文件,支持热重载。 ### 代码规范 - 前端使用 TypeScript 严格模式 - 后端使用 TypeScript 严格模式 - 遵循 ESLint 规范(如已配置) ### 构建部署 **前端构建** ```bash cd frontend npm run build ``` **后端构建** ```bash cd backend npm run build ``` ## 🔧 配置说明 ### 后端配置 后端配置文件:`backend/src/config/index.ts` ```typescript export const config = { tempPath: './temp/', resultPath: './result/', qzoneBaseUrl: 'https://user.qzone.qq.com', qzoneUrls: { // API地址配置 } }; ``` ### 前端配置 前端API地址配置:`frontend/src/utils/api.ts` ```typescript const apiClient = axios.create({ baseURL: 'http://localhost:3000/api', timeout: 10000, }); ``` 生产环境请修改为实际的后端地址。 ## 🐛 常见问题 ### 1. 登录失败 - 检查二维码是否过期(180秒有效期) - 重新获取二维码 - 检查网络连接 ### 2. 获取说说失败 - 检查cookies是否有效 - 重新登录 - 查看后端控制台错误信息 ### 3. 图片无法显示 - 检查后端图片代理服务是否正常 - 检查网络连接 - 查看浏览器控制台错误 ### 4. 端口冲突 - 修改后端端口:编辑 `backend/src/index.ts` - 修改前端端口:编辑 `frontend/vite.config.ts` ## 📝 更新日志 ### v2.0.0 (当前版本) - ✨ 前后端分离架构 - ✨ Web界面支持 - ✨ 移动端适配 - ✨ 多条件筛选 - ✨ Excel/HTML导出 - ✨ 图片预览功能 ### v1.0.0 - 🎉 初始版本(Python CLI) ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🙏 致谢 - 登录方法参考自 [python-QQ空间扫码登录](https://blog.csdn.net/m0_50153253/article/details/113780595) - [B站详细教程](https://space.bilibili.com/1606304832) ## 📮 联系方式 如有问题或建议,请通过以下方式联系: - GitHub Issues: [提交问题](https://gitee.com/JiaHuaWork/GetQzonehistoryWeb/issues) - B站: [@这个程序猿不太愣](https://space.bilibili.com/1606304832) --- **⚠️ 重要提示**:本项目仅供学习研究使用,请遵守相关法律法规,不得用于商业或非法用途。