一次实测:我把十年QQ空间说说完整备份到了本地
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
前几天整理旧照片,翻出一张 2013 年配在 QQ 空间说说里的图,顺手点进空间想找回当年的完整文案,结果页面加载了半天全是空白。那一刻我意识到:回忆还"在云端",但我随时可能失去它。于是我用一个晚上,借助开源工具 GetQzonehistory 完成了一次完整的QQ空间说说备份。这篇文章就是这次实测的全程记录,从环境准备到数据落盘,每一步都写得能复现。
契机:为什么我不再相信"云端帮你存着"
说说的内容本身不复杂:一段文字、几张图、一串点赞和评论。但它是按时间线排列的,删一条、屏蔽一个好友、换一次手机号,时间线就会出现缺口。平台策略每年都在变,接口说关就关,与其祈祷服务器永远稳定,不如把数据拿回自己手里。
我想要的备份要满足三个条件:免费、不依赖特定软件、格式能长期打开。Excel 满足表格需求,HTML 满足浏览需求,图片文件满足存档需求——这三样恰好就是 GetQzonehistory 输出的东西。
认识工具:GetQzonehistory 靠什么把说说搬回本地
这是一个用 Python 写的小工具,核心思路是"模拟登录 QQ 空间网页版",然后走两条通道把数据取回来:
- 消息列表通道:抓取空间互动消息页,覆盖说说、转发、留言、好友互动等信息;
- 未删除说说通道:调用空间内部的说说列表接口,按页拉取自己发布过的全部可见说说,包括 2014 年之前的老内容,还能拿到高清图地址。
两条通道的结果会合并、去重,最后统一落盘。整个流程用一张图就能说清:
从扫码登录、数据抓取到文件生成的完整流程
工具的目录划分也很直观:util/下是五个功能模块,main.py和fetch_all_message.py是入口,配置放在resource/config/config.ini,结果默认输出到resource/result/。如果你不想碰 Python,项目的 release 页面还提供了打包好的单文件版本,双击就能跑。
本地备份QQ空间的四步实战记录
下面按我实际操作时的顺序走一遍,附带踩坑点。
第一步:拉代码、建环境(zbar 是第一个坑)
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory python -m venv myenv source myenv/bin/activate pip install -r requirements.txt python main.py依赖列表里有pyzbar,它依赖系统级的 zbar 库。在 Linux 上如果报"无法找到 zbar 共享库",需要先装系统包(RPM 系用sudo dnf install -y zbar);macOS 用户则要先brew install zbar。这一步是新手最容易卡住的地方,装好就能继续。
第二步:终端扫码登录,全程不碰密码
程序启动后会自动向腾讯的登录接口申请一个二维码,然后以 ASCII 字符画的形式直接打印在终端里——没有图形界面也能扫。用手机 QQ 扫码确认后,登录态 cookie 会保存到resource/user/,下次再跑就直接复用,不用反复扫码。
这一步的安全感在于:整个过程不输入账号密码,授权范围也仅限于"以你的身份访问空间",属于标准的扫码授权流程。
第三步:两条抓取通道,互相补齐
登录成功后,工具先抓消息列表。它每次取 10 条,然后强制休息 3 秒——这是刻意的限速设计,目的是把请求频率压低,避免触发平台风控。我按这个节奏粗算了一下:600 条互动消息大概需要 3~4 分钟,量大的账号要有耐心,别去把延时改小。
消息列表跑完后,第二条通道开始调用说说列表接口,每页 30 条地拉取未删除说说,把 2014 年之前的老内容也一并补上,然后和消息列表去重合并。这里有个很贴心的机制:中间过程会写入resource/fetch-all/[QQ号]/下的 JSON 缓存文件,即使中途断网或手动中断,重新运行也能接着上次的进度继续,不会从头白跑。另外主程序注册了中断信号处理器,你在终端按Ctrl+C停掉程序,它也会先把已经抓到的数据保存下来再退出。
第四步:等待期间,它在后台做的三件事
抓取完成后,工具会自动完成三件收尾工作:把数据整理成多张 Excel;下载说说里的所有图片(默认转成高清图地址);再把说说、评论、表情重新渲染成一个还原网页版排版 HTML 页面。图片会按说说内容自动命名,重名时自动加时间戳后缀,文件名里的非法字符也会被清洗掉。
落盘之后的成果:六张表、一个网页、一个相册
全部完成后,打开resource/result/[你的QQ号]/目录,你会看到下面这套结构:
按 QQ 号分目录存放,表格、网页、图片各自归档
各文件的用途如下:
| 文件 | 内容 | 一句话用途 |
|---|---|---|
| 你的QQ号_全部列表.xlsx | 抓到的所有消息汇总 | 数据全集,后续清洗的原料 |
| 你的QQ号_说说列表.xlsx | 自己发布的说说 | 最核心的回忆档案 |
| 你的QQ号_转发列表.xlsx | 转发过的内容 | 补全互动轨迹 |
| 你的QQ号_留言列表.xlsx | 留言板记录 | 那些"踩踩"还在 |
| 你的QQ号_好友列表.xlsx | 好友昵称、QQ、主页 | 好友关系备份 |
| 你的QQ号_其他列表.xlsx | 好友在自己空间的互动 | 人际往来的原始记录 |
| 你的QQ号_说说网页版.html | 还原网页版排版 | 离线浏览、随手分享 |
| pic/ | 全部说说图片 | 高清原图存档 |
我最喜欢的是那个 HTML 文件:头像、昵称、发布时间、表情、配图、评论(含评论人昵称和头像)全部按时间倒序还原,双击打开就能像刷空间一样从头翻到尾,完全不需要联网。评论里的[em]表情代码会被替换成图片标签,连早年那些非主流表情都保留了。
QQ空间历史说说导出之后,还能怎么玩
数据落盘只是开始,表格化之后能做很多"空间里做不到"的事:
- 做年度回顾:按年份、月份筛选说说,统计自己哪一年话最多、哪一年最沉默,顺便生成"我的年度报告";
- 找重要节点:用 Excel 的筛选功能定位毕业、旅行、生日等关键日期,把多年时间线串成个人大事记;
- 整理相册:
pic/目录已经按说说归好了图片,可以直接当素材库,做纪念册、拼图、打印都方便; - 分析好友互动:把"其他列表"按 QQ 号聚合,看看这些年谁在你空间出现得最频繁。
如果懂一点 Python,用 pandas 读取 xlsx 后可以自由组合这些维度,比如按星期几统计发说说的习惯、按关键词分类内容主题。数据在自己手里,玩法没有上限。
几个诚实的边界说明
实测过程中也有几件事需要提前讲清楚,避免期望落差:
- 仅自己可见的说说拿不到。这类内容不在空间对外可见的消息列表里,任何工具都无能为力;
- 消息列表里没有的记录也补不回来。如果某些说说早年被删除,缓存里也没有,就无法还原;
- 限速是保护机制。那个 3 秒间隔不要图快改小,否则可能触发风控导致抓取失败;
- 请只备份自己的账号。项目自带免责声明,仅供学习和技术研究使用,拿它去爬别人空间的内容既不合适也有风险。
结尾:备份一次,安心十年
这次实测给我最大的感受是:备份这件事,难的不是工具,而是"决定动手"的那一刻。真正跑起来,从扫码到拿到全部数据,也就一顿晚饭的功夫。GetQzonehistory 把最繁琐的登录、抓取、解析、归档都封装好了,你要做的只是运行一条命令,然后看着进度条走完。
现在每当我再翻到十年前那条"今天天气真好"的说说,心里都会踏实一分——因为它不仅活在腾讯的服务器上,也躺在我自己的硬盘里。这份安心,值得你也试一次。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考