如何5分钟完成QQ空间历史说说本地归档:GetQzonehistory零基础指南
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
本地备份QQ空间历史说说:GetQzonehistory 是什么
上周有人翻QQ空间找一张三年前的合照,页面卡在加载圈出不来,换网络也没用——平台接口一变,这张照片可能就永远取不回来了。GetQzonehistory 做的事情很直接:把QQ空间的历史说说、转发、留言连同图片抓取到本地,存成 Excel 和图片文件夹。它是为不懂编程的普通用户设计的,装完依赖跑一条命令就能开始备份。
核心价值:手动备份和它的差别
| 对比项 | 手动截图/复制 | GetQzonehistory |
|---|---|---|
| 覆盖范围 | 挑着存,容易漏 | 说说、转发、留言、好友、图片全量 |
| 输出格式 | 零散图片加文字 | 六类 Excel 加网页版 HTML |
| 登录方式 | 反复进空间翻找 | 扫码一次,会话本地缓存复用 |
| 中断处理 | 前功尽弃 | Ctrl+C 保存已有数据,说说部分走本地缓存 |
手动备份每次都在和遗漏作对,而这个工具把抓取、分类、落盘全部自动化,人只扫一次码——相当于给空间内容加了一份本地保险。
5分钟上手:从零到跑通
准备工作
先把代码拉到本地,并进入项目目录。
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory用独立目录隔离项目,后续所有产出都生成在这个文件夹内,方便最后整体备份。
安装依赖
创建虚拟环境并安装项目声明的依赖。
python -m venv myenv .\myenv\Scripts\activate pip install -r requirements.txtmacOS/Linux 把第二行换成source myenv/bin/activate即可。虚拟环境避免依赖版本和系统里其他 Python 程序打架,出问题删掉环境重来就行。
启动使用
运行主程序,等终端打印出二维码。
python main.py扫个码就行,不用输密码——用手机 QQ 扫一下,登录成功后程序自动开始抓取。
它是怎么跑的:四步流程拆解
1. 扫码登录,会话只存本地
终端打印QQ空间登录二维码,util/LoginUtil.py 轮询扫码状态。成功后会话信息写入 resource/user/ 目录,下次启动会列出已缓存的账号供选择,不用重复扫码。
2. 先数总数,再分批取消息
util/RequestUtil.py 用二分查找确定历史消息的总条数,然后每批取 10 条,逐条解析时间、内容、图片链接和评论。每批之间停几秒,进度条实时可见。
3. 补齐未删除说说,覆盖更早的内容
util/GetAllMomentsUtil.py 分页拉取全部未删除的可见说说,包含 2014 年及更早的内容,并与消息列表去重合并。原始数据以 JSON 缓存在本地,重跑时直接读缓存。
4. 分类落盘:Excel、图片、网页版
保存环节把数据拆成全部、说说、转发、留言、其他、好友六类 Excel,图片下载到 pic 子文件夹,再生成还原空间排版的说说网页版 HTML。所有产出集中在 resource/result/QQ号/ 目录下。
核心能力:四个最实用的点
中断保护:Ctrl+C 不会白跑
长跑任务最怕中途被打断,数据没了就得从头再来。主程序注册了信号处理,手动退出时会把已抓到的数据写入 Excel;说说抓取层另有本地 JSON 缓存,重跑先读缓存。跑一次多一次成果,中断不心疼。
双格式导出:Excel 和 HTML 各管一边
同一份数据既要能分析,也要能直接翻看。Excel 保留时间、内容、图片链接、评论四个结构化字段,适合做统计;网页版 HTML 还原头像、排版和评论区,浏览器打开即看。分析交给 Excel,分享交给 HTML,两边都不用再加工。
图片自动下载:按内容命名,重名加时间戳
截图存图分辨率低,又难按时间找。程序按链接把图片存进 pic 文件夹,文件名取说说内容的前 40 个字,重名时自动追加时间戳。找老照片时凭文字就能猜中文件名。
多账号备份:换号不用重新扫码
一个设备要备多个号时,反复扫码很烦。登录会话按 QQ 号分别缓存,启动时列出已登录账号供选择,各自的结果存进独立文件夹。给家里几个号各备一份,互不串档。
进阶玩法:两个不折腾的用法
改保存位置:改三行配置
这一步是修改输出目录——把 resource/config 下 config.ini 里的三个路径改成想放的位置,重跑生效。
[File] temp = ./resource/temp/ user = ./resource/user/ result = ./resource/result/不想动配置也完全可行:默认产出就在 resource/result/QQ号/ 里,跑完直接进去拿文件。
数据二次利用:跑个数看看哪年最活跃
这一步是用 pandas 读导出的说说列表,按年份统计条数。
import pandas as pd df = pd.read_excel('resource/result/你的QQ号/你的QQ号_说说列表.xlsx') years = df['时间'].str[:4] print(years.value_counts().sort_index())不动代码的替代路径:直接打开 Excel,对"时间"列做筛选和排序,就能看出哪一年发帖最多。
真实使用场景
毕业季:把四年动态装进一个文件夹
- 全量导出说说和图片,按年份整理成纪念册素材
- HTML 页面直接发给同学,浏览器打开就是一条时间线
- 好友列表记录了互动过的人,顺手做一份"当年的朋友都在哪"清单
换号或销号前:旧号内容一次带走
- 全部列表 Excel 保留时间和内容的完整记录
- 留言列表存下朋友当年在说说下的评论
- 图片落到本地后,不再受链接失效或平台改版影响
找老照片:不赌平台还能不能加载
- pic 文件夹按说说内容命名,凭文字关键词就能搜到图
- 网页版 HTML 中图片自动替换为高清链接,点击可看大图
- 备份到移动硬盘,账号即使停更,内容也还在
安全与隐私
数据流向很干净:登录会话只存在本地 resource/user/ 目录;抓取请求在本地机器和QQ空间服务器之间直连;解析出的内容写入本地 Excel 和图片文件夹,全程不经过任何第三方服务器。
几条可以自己做的操作:
- 备份完成后,resource/user/ 里的登录缓存文件可以删掉
- result 文件夹是敏感的个人数据,别放进团队共享盘
- 项目有更新时保持同步,跟新版走
项目是开源的,任何一个请求和每一处落盘逻辑,都可以逐行审查。
常见问题
Q1:全量备份要多久?按每 10 条一批、批间停顿来算,条数越多越久。几千条消息的账号一般在小时级别,全程有进度条。
Q2:占多少磁盘?文字部分很小,大头是图片。上百张图大约几十 MB,具体看图片数量和质量。
Q3:断网或误关了程序怎么办?Ctrl+C 会把已抓到的数据保存成 Excel;说说数据有本地 JSON 缓存,重跑先读缓存,不用全量重抓。
Q4:可以备多个QQ号吗?可以。登录按 QQ 号缓存,启动时列出账号任选,结果各自独立成文件夹。
Q5:报"zbar 共享库找不到"?程序会按系统提示安装方式(如 Linux 执行sudo dnf install -y zbar),装完重启程序即可。
Q6:导出的数据能二次利用吗?六个 Excel 可直接用 Excel 或 pandas 做分析;HTML 网页可直接分享浏览。
三步开始备份
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory && pip install -r requirements.txt python main.py备份完成后的三件事:
- result 文件夹至少存两份,移动硬盘加个人网盘各一份
- 每半年左右重跑一次,把新发的说说补进来
- 用 Excel 数据做时间线纪念册或年度统计图,数据不止一次用途
数据在自己手里,才算真的留住了。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考