GetQzonehistory:一键完整导出QQ空间历史说说,5分钟把翻不到的旧动态搬回本地
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
打开QQ空间往后翻几屏就见底了,十年前写下的那条说说再也翻不出来。GetQzonehistory 是一个开源 Python 工具,通过扫码登录批量拉取你的QQ空间历史说说、转发和评论数据,导出成 5 个 Excel 表格加 1 个网页版,并把说说里的图片全部下载到本地,整个备份过程在电脑上完成,扫码就能跑。
工具速览:它能替你做什么
GetQzonehistory 面向想找回旧说说但不想手动截图整理的普通用户。它基于QQ空间的消息列表接口,把已经"翻过去"的动态(包括已删除的说说)按时间、内容、图片链接、评论四列结构化导出。和常见做法相比,它有三个实际差别:
- 对比手动截图:不用一条条点开、拍照、重命名,几千条动态由脚本自动分页抓取,图片按内容命名后存进
pic/目录 - 对比第三方付费工具:完全开源、数据全程不离开你的电脑,扫码登录不走密码
- 对比自己翻空间:能拿到消息列表里保留、但空间主页已看不到的旧动态,还能顺带整理出好友列表和网页版时间线
快速上手:QQ空间说说备份安装步骤
📌 环境要求:Python 3.9+(本项目虚拟环境为 3.12),Windows、macOS、Linux 均可。
# 克隆项目 git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory # 创建并激活虚拟环境 python -m venv myenv # Windows:.\myenv\Scripts\activate # macOS/Linux:source myenv/bin/activate # 安装依赖 pip install -r requirements.txt # 运行 python main.py- ✅ 启动后终端会打印一个 ASCII 二维码,用 QQ 扫码登录(提示缺少 zbar 共享库时,Linux 执行
sudo dnf install -y zbar,macOS 执行brew install zbar) - ✅ 登录成功后自动开始抓取,进度条按"10条/批"推进,每批间隔 3 秒
- ✅ 看到"导出成功"提示后,程序会自动打开结果文件夹
💡 不想配 Python 环境的话,也可以到项目 release 页下载打包好的单文件版本直接运行。
导出文件说明:你会得到什么
所有结果保存在resource/result/你的QQ号/目录下,结构如下:
| 文件 | 内容 | 字段 |
|---|---|---|
| QQ号_全部列表.xlsx | 消息列表中的全部记录 | 时间、内容、图片链接、评论 |
| QQ号_说说列表.xlsx | 你自己发布的说说 | 时间、内容、图片链接、评论 |
| QQ号_转发列表.xlsx | 你转发的内容 | 时间、内容、图片链接、评论 |
| QQ号_留言列表.xlsx | 好友给你的留言 | 时间、内容、图片链接 |
| QQ号_好友列表.xlsx | 互动中出现的好友 | 昵称、QQ、空间主页 |
| QQ号_其他列表.xlsx | 好友发布的说说 | 时间、内容、图片链接 |
| QQ号_说说网页版.html | 还原时间线的网页版 | 头像、评论、高清图片 |
| pic/ | 说说中的所有图片 | 按内容文本命名(限 40 字符,重名自动加时间戳) |
数据行示例(说说列表.xlsx):
| 时间 | 内容 | 图片链接 | 评论 |
|---|---|---|---|
| 2016年06月08日 12:30:22 | 小明:终于熬过期末了🎓 | http://img.qzone.example/abc.jpg | [('2016年06月08日 13:01:05','毕业快乐!','小花','88231')] |
网页版会把原图链接从小图自动替换为高清版本,QQ 表情码[em]也会转成图片标签,双击打开即可像翻空间一样浏览。
工作原理:从扫码到导出的完整流程
整体流程分四步:扫码登录拿到 cookie → 用二分查找确定历史消息总条数 → 每批 10 条分页拉取消息列表并解析出时间、内容、图片、好友信息 → 再用当前可见说说(每页 30 条,含 2014 年之前数据)做补充,两者通过内容比对去重后分类导出。
各模块职责(位于 util/ 目录):
- main.py:主程序,协调全流程,导出后自动打开结果目录
- util/LoginUtil.py:生成并解码登录二维码,cookie 按 QQ 号存入
resource/user/ - util/RequestUtil.py:二分估算消息总量、分页请求历史消息
- util/GetAllMomentsUtil.py:抓取当前可见说说与高清图片链接,结果缓存为 JSON
- util/ToolsUtil.py:HTML 十六进制解码、表情转换、
is_any_mutual_exist去重判断 - util/ConfigUtil.py:读取配置、初始化 temp / user / result 目录
安全与可靠性设计:
- 本地处理:请求只发往QQ空间官方接口,抓到的数据全部落盘在本机
- 扫码登录:不经过密码,cookie 本地保存;再次运行时可选择已登录账号,输入 0 重新扫码
- 限速防风控:消息列表每批 3 秒间隔,可见说说每页 0.02 秒间隔
- 中断恢复:按 Ctrl+C 或进程被 kill 时,信号处理器会先保存已抓到的数据再退出;可见说说走 JSON 缓存,重跑不重复请求
实用建议与常见问题
实用建议
- ⏱ 说说每批 3 秒,5000 条约需 25 分钟以上,看到进度条在动就别关窗口
- 🖥 预留 1GB 以上磁盘空间,图片全部落地到
pic/ - 导出结束后终端会打印各列表条数,对照核对一下再归档
- 建议每年重跑一次,第二次执行会命中缓存,速度明显更快
resource/user/里的 cookie 文件等同于账号会话,备份时注意不要外传
常见问题
- 问:为什么个别特别早的说说查不到?工具以空间消息列表为主数据源,从未进入过消息列表的动态(如仅自己可见的早期说说)无法恢复,这是平台侧限制,不是抓取遗漏。
- 问:换了电脑还要重新扫码吗?需要。cookie 保存在原电脑的
resource/user/,把该目录拷过去并选对应账号即可免扫码;多账号可一次导出多个。 - 问:中途断网或误关了程序,之前抓的白干了吗?不会。异常退出前已抓数据会被保存,且可见说说有本地缓存,重跑会接着补。
开始你的第一次备份
- 克隆项目:
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory - 按上文命令建好虚拟环境并安装依赖
- 运行
python main.py,用 QQ 扫码登录 - 等待进度条走完,程序自动打开
resource/result/你的QQ号/ - 抽查 Excel 条数与
pic/图片是否齐全 - 把整个 result 目录归档到移动硬盘或网盘,每年重复一次
翻不到不等于不存在——把导出文件核对完,这次备份就正式完成了。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考