ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

如何完整备份QQ空间全部历史:GetQzonehistory QQ空间数据导出工具上手指南

如何完整备份QQ空间全部历史:GetQzonehistory QQ空间数据导出工具上手指南

如何完整备份QQ空间全部历史:GetQzonehistory QQ空间数据导出工具上手指南

【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory

想把QQ空间里发过的每一条说说、收到的每一条留言、附带的每一张图片都搬回自己的硬盘,GetQzonehistory 是一款免费的QQ空间备份工具可以做到:扫码登录、完整抓取、自动落盘,全程不需要自己写爬虫,只熟悉一点点 Python 基础就能跑起来。

3步完成QQ空间数据本地备份

准备工作一共三件事。

先装好 Python 3.7 及以上版本(python --version可确认),再拿到项目代码:

git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory

最后装依赖并运行。依赖清单在 requirements.txt 里已经固定好版本,pandas、requests、BeautifulSoup 等一次装齐:

pip install -r requirements.txt python main.py

运行后终端会打印出二维码,用手机 QQ 扫码即可。程序随即开始按每批 10 条的节奏抓取互动消息列表,跑完后自动把所有内容存进本地目录。中等规模的账号,一次完整备份通常在几分钟到十几分钟之间。

备份结果文件说明

判断一个QQ空间数据导出工具靠不靠谱,先看产出是否齐整。运行一次后,resource/result/QQ号/目录下会出现三类文件:

类型文件内容
ExcelQQ号_全部列表.xlsx你能看到的全部互动消息,含时间、内容、图片链接、评论
ExcelQQ号_说说列表.xlsx、QQ号_转发列表.xlsx、QQ号_留言列表.xlsx自己发的说说、转发过的内容、收到的留言,分开存放
ExcelQQ号_其他列表.xlsx、QQ号_好友列表.xlsx好友发布的其他内容;涉及的好友昵称、QQ 号与空间链接
网页QQ号_说说网页版.html仿照空间样式还原的网页版,浏览器直接打开就能翻
图片pic/文件夹说说里附带的图片逐张下载,按内容命名

导出完成后,建议先打开网页版 HTML 翻一翻体验,再对照 Excel 核对条数是否完整。

QQ空间数据抓取是怎么跑的:模块分工

整个活被拆在 util/ 目录下的五个小模块里,各管一段,想读源码也不会迷路。

登录由 util/LoginUtil.py 负责:生成扫码二维码,扫码成功后拿到登录 Cookie,并算出后续请求需要的 bkn、qrsig 参数。Cookie 会写入用户信息目录,下次运行不必重新扫码。

数据抓取分两路走。util/RequestUtil.py 管互动消息(点赞、评论、留言):先查总条数,再按每批 10 条拉取,中间固定歇 3 秒,把对服务器的压力压住;util/GetAllMomentsUtil.py 管自己未删除的说说,按空间接口分页翻到底。两路数据最后做去重合并,避免同一条说说出现两次。

ToolsUtil 负责杂活:编码识别、老版 HTML 兼容、QQ 表情解析、网页模板生成;ConfigUtil 读配置文件决定结果落在哪。main.py 本身只是调度器,按“登录 → 抓取 → 合并 → 落盘”串起全流程。

目录树非常清爽:

GetQzonehistory/ ├── resource/ # 配置、结果输出、缓存、用户信息 ├── util/ # 五个工具模块 │ ├── ConfigUtil.py │ ├── GetAllMomentsUtil.py │ ├── LoginUtil.py │ ├── RequestUtil.py │ └── ToolsUtil.py ├── main.py # 主程序入口 ├── fetch_all_message.py # 说说数据独立抓取入口 └── requirements.txt # 依赖清单

按需调整备份范围与节奏

默认行为是“能拿的都拿、拿了全存”,有具体诉求时留了几个调节口。

如果你只想抓自己发的说说(包括 2014 年以前的),可以单独运行 fetch_all_message.py:它按空间接口逐页翻页,原始数据以 JSON 形式缓存在 resource/fetch-all/ 下,中途断了下次接着来。这份 JSON 还能直接当二次加工的中间数据源,用 pandas 读进来之后,导出成 Markdown 或 PDF 都随你。

如果想让备份长期自动跑,可以交给系统定时器,比如 Linux 下的 crontab:

0 3 1 * * cd /path/to/GetQzonehistory && python main.py

程序节奏本身偏保守,每 10 条歇 3 秒,不建议多开实例硬提速。

QQ空间数据备份的安全与使用边界

用之前有三件事值得知道。一是全程本地化:数据从 QQ 服务器直接落到你自己电脑上,不经过任何第三方服务器中转。二是登录纯扫码:程序碰不到你的密码,登录状态只存在本机,用完可以删掉。三是代码完全开源:每一行在做什么,都可以自己读一遍确认。

同时边界也很硬:只用于备份自己账号的数据,不面向商用,更不能拿去批量抓取别人的内容;请求频率也被程序刻意限速,避免给服务端添麻烦。

备份数据的三个真实用法

记忆归档。把从第一条说说到今天的完整记录连同图片、评论存下来。哪怕哪天空间入口变了、旧内容看不见了,你手里也有一份完整副本。

数据可视化。Excel 里的数据天生带结构:时间、内容、评论各占一列。做“每月发几条”“逐年活跃曲线”这类统计非常快,模糊的“我以前很活跃”能变成看得见的图。

内容迁移。打算写博客、做照片集或整理一本“人生小结”,这批数据就是现成素材库:按年份筛,把文字和图片挑出来即可。

常见问题速查

Q:中途断网、手滑按了 Ctrl+C 怎么办?程序注册了信号处理,停止时会先把已抓到的数据存盘再退出,不丢已抓的说说;说说抓取部分还有本地分页缓存,重跑能接着继续。

Q:为什么有的说说没导出?导出范围以“你能看到的内容”为准,仅自己可见、已隐藏或删除的说说不在这个列表里,属正常现象。

Q:抓取很慢?默认就是每 3 秒 10 条,大账号页数多,本来就需要时间,耐心等完即可。

Q:跨平台有依赖问题?扫码识别依赖 pyzbar,底层需要系统级的 zbar:macOS 执行brew install zbar,Linux 通过包管理器装 libzbar0。

Q:备份结果太大?大头在 pic/ 里的图片,可以整体压缩或挪到外置存储;Excel 和 HTML 本身体积很小。

进阶方向:把数据用出花样

数据到手后,后面才好玩:清洗时间列画发帖频率时间线、对内容列提取高频词做词云、按互动给好友聚类。这些都从一行 pandas 开始:

data = pd.read_excel('123456789_说说列表.xlsx') data['year'] = pd.to_datetime(data['时间']).dt.year

剩下的就是数据加工与可视化的活了。

记忆最可靠的存放地,是你自己的硬盘。今天就跑一次备份,别等想翻旧账时才动手。

【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进