QQ空间历史说说导出教程:GetQzonehistory 如何把多年动态备份成 Excel 和网页
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
QQ 空间的消息列表能翻到的记录有限,更早的说说、好友留言、转发内容翻着翻着就没了。GetQzonehistory 的作用很直接:用你自己的账号登录 QQ 空间,把历史消息列表里的说说、留言、转发和好友信息抓出来,导出成带 QQ 号命名的 Excel 文件和一个网页版页面,图片也一并下载到本地。整个过程不需要输入密码,手机 QQ 扫码即可。
完整安装步骤:从克隆到跑通只需要 4 步
整个过程在终端里完成,按顺序执行即可,每一步都有明确的产出。
克隆项目并进入目录
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory创建并激活虚拟环境(Windows 激活命令为
myenv\Scripts\activate,macOS / Linux 用source myenv/bin/activate)python -m venv myenv安装依赖:
pip install -r requirements.txt如果卡在
pyzbar这一步,先装系统库:Ubuntu / Debian 执行sudo apt-get install libzbar0,CentOS 执行sudo yum install zbar,macOS 可用 Homebrew 安装 zbar(程序里也内置了相关提示)。运行程序:
python main.py
登录环节在 util/LoginUtil.py 中实现:程序先检查resource/user/目录,如果你之前登录过,会列出已登录账号让你选择(输入 0 可重新扫码);否则终端会直接打印一个二维码,用手机 QQ 扫它并确认,终端提示"登录成功"即可。二维码几分钟内会失效,过期后重跑程序重新生成。
程序确认登录成功后会自动开始导出,先统计消息总数,再逐批拉取。看到绿色的"导出成功"提示、资源管理器自动打开结果目录,就算跑通了。
运行后你会得到什么:6 个 Excel 加一个网页
所有产出都在一个以你 QQ 号命名的文件夹里(resource/result/你的QQ号/),文件名也以 QQ 号开头,具体由 main.py 中的save_data()函数生成:
| 文件 | 内容 |
|---|---|
全部列表.xlsx | 抓到的所有消息的完整记录(时间、内容、图片链接、评论四列) |
说说列表.xlsx | 你自己原创发布的说说 |
转发列表.xlsx | 你转发的内容 |
留言列表.xlsx | 好友给你留的言 |
其他列表.xlsx | 好友互动中其他类型的内容 |
好友列表.xlsx | 出现过的好友:昵称、QQ 号、空间主页链接 |
说说网页版.html | 还原 QQ 空间样式的网页,按时间排列你的说说、转发和图片 |
pic/目录 | 从说说中提取的图片,已下载到本地 |
两点需要知道:
- 时间格式为"2020年05月01日 20:30",Excel 里可以直接按年份筛选、排序。
- 导出完成后终端还会打印统计:消息总条数、最早一条说说发布的时间、好友数、说说数、图片数,方便你核对结果是否完整。
它是怎么工作的:一条从登录到导出的流水线
理解数据在程序里怎么流动,能帮你判断"为什么有些内容没导出来"。整条流水线是:
登录 → 计数 → 抓取 → 清洗分类 → 补漏 → 导出
- 登录:扫码拿到登录凭证(cookie),之后所有请求都以你的身份发出,实现见 util/RequestUtil.py。
- 计数:先用二分查找的方式探测消息列表的总条数,决定后面要抓多少批。
- 抓取:消息列表接口一次返回 10 条,程序逐批翻页,每批之间休息几秒,避免请求过快。
- 清洗分类:返回的 HTML 被解析成"时间、内容、图片链接"的结构化记录,去掉重复项,再按"是不是你发的、是不是转发、是不是留言"分成不同的列表。
- 补漏:消息列表不一定包含你所有的可见说说,所以 util/GetAllMomentsUtil.py 会再调用 QQ 空间的说说列表接口,把你所有未删除的可见说说(包括 2014 年之前的老内容)拉一遍,与已有记录去重后合并进来。
- 导出:生成前面表格里的 Excel 和 HTML,并把
pic/里的图片逐张下载下来。
配置(比如结果保存位置)由 util/ConfigUtil.py 从resource/config/config.ini读取,一般不需要改。
更进一步:Markdown 导出与数据分析玩法
基础导出之外的几个用法:
- 想要 Markdown 版:项目里还有另一个入口 fetch_all_message.py,它拉取所有可见说说后直接写成
所有可见说说.md,图片存到resource/fetch-all/你的QQ号/目录。适合想要纯文本格式、或者自己二次加工的人。 - 年度统计:在
全部列表.xlsx里按年份对时间列做筛选或透视表,就能看到自己每年的发布频率,哪一年最活跃一目了然。 - 关键词追踪:对"内容"列做文本筛选,统计某几个词出现的年份,可以粗略看出不同阶段的关注点变化。
- 纪念时间线:
说说网页版.html加上pic/里的图,本身就可以当作一份可离线打开的个人回忆页;也可以挑出重要日期的条目,单独整理成一份纪念档案。 - 安全提醒:这些文件包含你的社交记录,备份到网盘或移动硬盘时建议放在加密的目录里。
避坑指南:四类常见问题的现象与解决
扫码后一直不显示登录成功原因通常是二维码已过期或网络无法访问 QQ 登录服务。解决办法:重新运行程序生成新二维码,尽快完成扫码;同时确认电脑能正常打开 QQ 空间网页版。
依赖安装失败,提示找不到 zbar 共享库原因是pyzbar依赖系统级的 zbar 库,pip 装不了。按上文安装步骤第 3 条,先装好对应系统的 zbar 库,再重新执行pip install -r requirements.txt。
导出的内容比你预期的少原因有两个:一是数据源就是消息列表,仅自己可见的说说不在其中;二是网络不稳时某几批请求失败会被跳过。解决办法:核对 QQ 空间的可见性设置,导出后检查终端打印的统计条数,发现偏少就换个网络环境重跑一次。
pic/目录里图片缺几张原因多为早年图片的原始链接已经失效,这是正常现象,不影响 Excel 和 HTML 里的文字记录完整。
最后
GetQzonehistory 帮你做的,就是把散落在消息列表和说说列表里的多年记录,一次性变成可以离线保存、筛选、归档的 Excel 和网页。克隆仓库,跑一次python main.py,扫个码,剩下的交给程序。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考