news 2026/10/6 2:24:16

GetQzonehistory:把QQ空间历史说说一键备份成本地Excel和HTML

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GetQzonehistory:把QQ空间历史说说一键备份成本地Excel和HTML

GetQzonehistory:把QQ空间历史说说一键备份成本地Excel和HTML

【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory

翻空间找三年前发过的某条动态,翻到手指酸也定位不到?想按年份统计自己发了多少条说说,网页版却没有导出功能?GetQzonehistory 可以帮你把账号下的历史说说、评论和附图完整抓下来,存成 Excel 表格和网页版 HTML,全部留在本机。

它是什么

一个免费开源的 Python 小工具,跑在你自己的电脑上,不用部署服务器,也不用把账号密码交给任何第三方。它模拟 QQ空间网页版的扫码登录和请求流程,把互动消息列表和未删除说说列表两个来源合并去重后导出。登录只用 QQ 官方扫码,cookie 存在本地。

准备工作

  1. 克隆仓库,进入项目目录:
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory
  1. 创建并激活 Python 虚拟环境(Python 3.8+ 均可):
python -m venv myenv # Windows 激活: .\myenv\Scripts\activate # macOS / Linux 激活: source myenv/bin/activate
  1. 安装依赖:
pip install -r requirements.txt
  1. 安装系统级 zbar 库(登录二维码识别依赖它,util/LoginUtil.py 里用到):
# Linux(RPM 系) sudo dnf install zbar # macOS brew install zbar

完整操作流程

1. 运行主程序

执行:

python main.py

看到:终端打印一段字符画形式的登录二维码,提示"登录二维码获取成功"。得到:一个待扫码的二维码,用手机 QQ 扫它。

2. 手机确认登录

在手机上用 QQ 扫码并确认。看到:终端依次出现"二维码认证中",随后"登录成功"。得到:程序自动进入抓取阶段,登录 cookie 同时被写入 resource/user/ 目录备用。

3. 等待分页抓取完成

程序从互动消息列表按每页 10 条翻页抓取,每批之间暂停 3 秒,控制台有进度条。看到:进度条推进,每批打印"Pause for 3 seconds..."。得到:抓完互动列表后,程序接着调用 util/GetAllMomentsUtil.py 走未删除说说接口补齐(可覆盖 2014 年之前的记录),并自动去重合并。

4. 查看导出结果

看到:终端打印消息总数、最早一条说说的时间、各列表条数、图片数量等统计,并自动打开结果目录。得到:以你的 QQ 号命名的结果文件夹,位于 resource/result/ 下。

你会得到什么

结果保存在resource/result/[你的QQ号]/目录中:

文件用途
[QQ号]_全部列表.xlsx合并去重后的全部动态,含时间、内容、图片链接、评论
[QQ号]_说说列表.xlsx你自己发的说说
[QQ号]_转发列表.xlsx你的转发内容
[QQ号]_留言列表.xlsx你在别人空间下的留言
[QQ号]_好友列表.xlsx昵称、QQ 号、空间主页链接
[QQ号]_其他列表.xlsx好友的动态等其他内容
[QQ号]_说说网页版.html按时间倒序还原的空间样式页面,带头像、附图和评论区
pic/目录说说附图的本地副本,文件名取自正文内容,重名自动加时间戳

Excel 里同时保留了原图链接,方便和图片目录比对、补下。

进阶玩法

  • 复用登录状态:cookie 缓存在 resource/user/,再次运行时程序会列出已登录用户让你选择,不必重复扫码。缓存失效就选"重新登录"再扫一次。
  • 调整抓取节奏:每批 3 秒的暂停写在 main.py 里的time.sleep(3)。网络不稳或担心请求过快时把数值调大,不建议调得太小。
  • 改保存位置:临时目录、登录缓存目录、结果输出目录都在 resource/config/config.ini 的[File]段配置,想把备份放到别的磁盘直接改result路径即可。
  • 只要纯文本存档:独立入口 fetch_all_message.py 只抓全部可见的未删除说说(含 2014 年之前),导出为单个 Markdown 文件,图片也一并下载,适合不想要 Excel 的场景。
  • 改造抓取逻辑:请求、登录、工具函数分别在 util/RequestUtil.py、util/LoginUtil.py、util/ToolsUtil.py,按需修改即可。

避坑指南

  • 报"无法找到 zbar 共享库"→ pyzbar 依赖系统级 zbar 而非 Python 包 → 用系统包管理器装(Linux 如sudo dnf install zbar,macOS 如brew install zbar)后重跑。
  • 二维码扫不了或提示已失效→ 二维码有时效,终端出现"二维码已失效"即过期 → 重新运行python main.py获取新码;同时确认手机 QQ 在线且网络正常。
  • 备份里找不到某条明明发过的说说→ 工具只能取回仍在互动消息列表里、或未删除且可见的内容 → 已删除且不可见的说说不在抓取范围,属预期行为。
  • 中途按了 Ctrl+C→ 程序注册了信号处理,不会直接丢数据 → 已抓到的内容照常导出 Excel 和 HTML,无需重跑。
  • 耗时比预期长→ 总条数多,每批固定暂停 3 秒 → 数千条通常要几十分钟,进度条会一直显示,耐心等或先去做别的事。

边界与合规

所有抓取和导出都在本机完成,数据不会上传到任何第三方服务器,登录走 QQ 官方扫码流程而不经过账号密码。备份完成后可以自行删除 resource/user/ 下的登录缓存,只保留结果文件。项目代码开源可审查,请仅用于个人学习和技术研究,并注意遵守 QQ 空间的相关使用条款。

现在就克隆仓库跑一遍python main.py,扫完码等进度条走完,你的空间时间线就会躺在resource/result/里了。更多细节可以看 README.MD。

【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 2:15:32

AI Agent 面试题 169:Agent的缓存策略如何帮助减少重复的LLM调用?

🔥 AI Agent 面试题 169:Agent的缓存策略如何帮助减少重复的LLM调用?摘要:本文深入解析了「Agent的缓存策略如何帮助减少重复的LLM调用?」这一 AI Agent 领域的核心面试题。文章从 Token 优化策略 的基本概念出发&…

作者头像 李华
网站建设 2026/10/6 2:07:58

5分钟上手TileLang:GPU内核开发指南

5分钟上手TileLang:GPU内核开发指南 【免费下载链接】tilelang Domain-specific language designed to streamline the development of high-performance GPU/CPU/Accelerators kernels 项目地址: https://gitcode.com/GitHub_Trending/ti/tilelang 手写一个…

作者头像 李华
网站建设 2026/10/6 2:04:10

Yup 类型校验错误消息自定义:typeError() 用法详解

文档教程知识库 【免费下载链接】til :memo: Today I Learned 项目地址: https://gitcode.com/gh_mirrors/ti/til 点击查看 免费下载 导读 在基于 Yup 构建表单校验时,类型不匹配的默认报错往往冗长且面向开发者而非用户。本篇以 til 仓库中 Custom Ty…

作者头像 李华
网站建设 2026/10/6 2:03:47

vue-devui Anchor 锚点组件实战指南:指令式页面内跳转与滚动激活

前端UI组件设计系统 【免费下载链接】vue-devui 基于全新 DevUI Design 设计体系的 Vue3 组件库,面向研发工具的开源前端解决方案。 项目地址: https://gitcode.com/DevCloudFE/vue-devui 点击查看 免费下载 在长文档、帮助中心或研发工具等需要「页内快…

作者头像 李华