GetQzonehistory 完整使用指南:3 步把 QQ 空间历史说说与图片备份到本地
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
打开 QQ 空间想翻回 2016 年发过的一条说说,结果消息列表只保留最近的内容,往前的记录已经翻不到。这就是 GetQzonehistory 要解决的现实问题:它通过模拟登录 QQ 空间,把账号下可见的历史说说的文字、图片、评论和留言批量抓下来,存成本地 Excel 和图片文件。全程扫码登录,不需要输入密码,也不需要你懂编程。
它是什么:一个 QQ 空间历史说说备份工具
GetQzonehistory 是一个本地运行的 Python 小工具,核心思路是两条抓取链路:
- 互动消息列表:QQ 空间"消息盒子"里能翻到的所有互动记录(自己发的、转发的、好友留言的),每条 10 个、间隔几秒地分批拉取;
- 未删除说说接口:直接按分页拉取你空间里所有可见且未删除的说说,包括 2014 年以前的老内容。
两条链路的结果去重合并后,按"说说 / 转发 / 留言 / 其他 / 好友"分类写成 Excel,图片单独下载到文件夹,最后再渲染出一个可在浏览器里翻阅的网页版。需要说明的边界是:仅自己可见、已删除、或被平台清理掉的内容,任何工具都拿不回来,它抓取的范围以消息列表和公开可见接口返回的为准。
能力地图:从文字到图片的完整落盘
工具覆盖的内容可以分成四组:
| 分组 | 具体产出 | 存放位置 |
|---|---|---|
| 结构化数据 | 全部列表、说说列表、转发列表、留言列表、其他列表、好友列表,共 6 份 Excel(含时间、内容、图片链接、评论) | resource/result/你的QQ号/ |
| 图片资源 | 说说配图自动下载,按内容命名,重名自动加时间戳 | resource/result/你的QQ号/pic/ |
| 网页版 | 合并说说与转发、按时间倒序排列、还原评论和表情的单文件 HTML,方便直接翻看或分享 | 结果目录内*_说说网页版.html |
| 深度导出 | 独立入口fetch_all_message.py,按 30 条/页拉取全部未删除说说(含 2014 年前),生成 Markdown 版所有可见说说.md,配图使用高清原图 | resource/fetch-all/ |
另外支持多账号:resource/user/目录会按 QQ 号缓存登录态,下次启动时列出已登录用户让你选序号,输入 0 则重新扫码。
最快上手:克隆、装依赖、扫码
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运行后终端会打印一个二维码,用 QQ 扫一下,看到"登录成功"就开始抓取。每批 10 条、批间休息 3 秒,进度条会实时显示,结束后自动打开结果文件夹并打印各分类的条数统计。整个过程无需输入密码。
它是怎么跑的:扫码登录 + 两条抓取链路
理解机制只需看两个文件:
- util/LoginUtil.py:走 QQ 官方扫码登录流程。它请求登录二维码(
qrsig→ptqrlogin轮询),成功后把 cookies 存到resource/user/QQ号文件,这就是多账号复用登录态的来源。注意它依赖pyzbar(底层是 zbar 库),Linux 上需要先sudo dnf install -y zbar,macOS 上程序会提示你用 Homebrew 安装。 - main.py:主流程入口。先登录,再按批次调用 util/RequestUtil.py 拉互动消息,用 BeautifulSoup 解析每条记录的昵称、QQ、时间、正文和图片;随后调用 util/GetAllMomentsUtil.py 按分页补齐未删除说说;最后
save_data()写 Excel、下载图片、渲染 HTML。signal.signal注册的信号处理函数会在你按 Ctrl+C 中断时先落盘已抓到的数据,避免前功尽弃。
想改导出目录的位置,改resource/config/config.ini里的路径即可,util/ConfigUtil.py 负责读取。
谁适合用,以及典型用法
- 想留底的老用户:空间用了十年以上,历史内容大部分已翻不到,用它做一次全量落盘是最省事的方案;
- 毕业季、换号前的一次性整理:跑一次主程序拿到 Excel + 图片 + 网页版三套产物,直接归档或制作纪念册;
- 需要结构化数据的人:Excel 里带时间、内容、评论列,可以接 pandas 做发布频率、活跃年份之类的统计;
- 只要纯文字存档的人:跳过主程序,直接跑
python fetch_all_message.py,产出的是带高清图的 Markdown,更适合长期文本保存。
和手动备份、第三方导出比,它差在哪
差异主要在三点。
覆盖面:手动截图只能覆盖你当时翻到的页面,而它从消息列表和说说接口两条路抓,自己发的、转发的、别人留言的分别成表,不易遗漏(已删除或仅自己可见的除外)。
数据形态:截图是死图,而它的产物是结构化 Excel,可以筛选、排序、导入分析工具;HTML 版保留了时间线、头像、评论和 QQ 表情的还原,比一堆截图更接近原空间浏览体验。
流程成本:第三方导出类工具有的需要账号密码、有的把数据中转上云;它走官方扫码、数据全程在本机磁盘,pip install之后一条命令跑完,不需要你理解接口细节。代价是它依赖网页版接口,QQ 空间改版时可能需要等上游更新才能修复。
数据与隐私:一切都留在本地
- 登录:官方扫码,密码不经过程序;本地只存 cookies 文件(
resource/user/); - 处理:抓取、解析、写文件全部在本地完成,代码开源可自查,util/ 下五个模块各司其职,没有向第三方服务器上传数据的逻辑;
- 收尾建议:备份完成、确认结果无误后,可以自行删除
resource/user/和resource/temp/下的登录缓存;结果目录resource/result/再复制一份到其他存储介质,做到两地保存。
避坑清单:遇到症状先查这里
| 症状 | 可能原因 | 处理 |
|---|---|---|
| 启动报"无法找到 zbar 共享库" | pyzbar需要系统级 zbar 库 | Linux 执行sudo dnf install -y zbar;macOS 按提示用 Homebrew 安装 zbar 后重启程序 |
| 二维码一直"认证中"或已失效 | 手机未确认,或终端里黑白块渲染错乱 | 重新运行让它刷新二维码;终端显示异常时改用生成的resource/temp/QR.png图片扫码 |
| 抓完条数明显偏少 | 平台只保留有限历史消息,老内容不在消息列表里 | 主程序已自动合并"未删除说说接口"的结果;仍不满意就跑fetch_all_message.py走全量分页 |
| 图片没下载下来 | 图片链接为空、非 http 链接或下载时网络失败 | 属正常跳过逻辑,重跑一次;个别丢失只能手动补 |
| Ctrl+C 后担心数据丢失 | 误以为中断即清零 | 信号处理函数会先调用保存逻辑,已抓到的数据会写入结果目录,再重跑即可 |
| 提示"获取消息失败:第 N 批次,返回值为空" | 单批请求偶发失败 | 程序会跳过该批继续,结束后可重跑补齐 |
开始之前核对一遍
- 电脑已安装 Python 3,并可用命令行执行
python -m venv; - Linux 用户先装好 zbar 库,macOS 用户按提示走 Homebrew;
- 手机 QQ 在手,随时可以扫码;
- 磁盘预留空间:文字数据很小,主要是图片,按 10 万条说说估几百 MB 到 1 GB 都算正常;
- 只备份自己的账号,抓取节奏保持默认间隔,不要自行加速批量操作。
工具本身没有魔法,它的价值只有一句话:把平台上随时可能翻不到的历史说说,变成一份完全由你保管的本地档案。跑通一次、归档一次,剩下的就是时间的问题。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考