GetQzonehistory实操指南:3步备份QQ空间全部历史说说
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
整理旧照片时翻到一张 2014 年的空间留言截图,你想查一下那年还发过什么。可空间里的动态只展示近几年的内容,手动翻回 2014 年不现实。GetQzonehistory 就是为此写的:一个用 Python 导出 QQ空间历史说说的工具,把十几年前的说说、转发和评论整理成 Excel 和网页,全程本地处理,登录只扫码、不输密码。
项目速览:30 秒看懂它能做什么
GetQzonehistory 是一个 Python 写的开源备份工具。它走 QQ 空间官方扫码登录接口拿到凭证,然后按页拉取"空间消息列表"里的历史互动,再补一份"未删除说说"做合并去重,最后把结果写成结构化文件放在本地目录。运行环境是 Python 3.9 以上,Windows、macOS、Linux 都能跑。核心能力有四条:扫码登录免密码、消息列表全量备份、未删除说说合并、Excel + HTML + 本地图片输出。
| 项目 | 说明 |
|---|---|
| 项目 | GetQzonehistory,QQ空间历史说说导出工具 |
| 语言 | Python(pandas、BeautifulSoup、requests) |
| 环境 | Python 3.9+,另需系统级 zbar 库 |
| 平台 | Windows / macOS / Linux |
| 产物格式 | 6 个 Excel、1 个 HTML 网页、1 个图片目录 |
跑起来:从克隆到启动的 3 步
第一步,拿项目、装依赖:
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory python -m venv myenv source myenv/bin/activate pip install -r requirements.txt这一段把仓库克隆下来,建好独立虚拟环境,并把 pandas、requests 等依赖一次装齐。Windows 上把第四行换成myenv\Scripts\activate。
第二步,首次启动:
python main.py启动后终端会打印一串字符组成的二维码,用手机 QQ 扫码确认,登录流程会自动往下走。
第三步,确认输出位置(可选):结果目录由resource/config/config.ini里[File]段的result字段控制,默认./resource/result/。想换位置只改这一个字段即可。
功能全景:扫码之后发生了什么
按"输入 → 处理 → 输出"的数据流走一遍。
输入:扫码登录与凭证缓存
登录模块 从空间登录服务器取二维码,在终端打印成 ASCII 码,你用手机 QQ 扫完确认后,程序拿到 cookie 并写入resource/user/目录,以 QQ 号命名。下次运行会列出已登录用户让你选序号,输入 0 才强制重新扫码。也就是说,二维码只需扫一次,重复运行或断点续跑都不必再走认证。
处理:从数总数到分页抓取
请求模块 先做一件有点绕的事:用二分法探消息列表的总条数,不断试不同偏移量看请求是否还有数据。确定总量后,主程序 开始每次 10 条地翻页,每个请求等 5 秒、每页再歇 3 秒,靠 tqdm 打印进度。每一页用 BeautifulSoup 解析 HTML,抽出发布时间、内容、图片链接,同时顺手把出现过的昵称、QQ 号、空间主页攒成好友表。
节奏看起来慢(约 8 秒 10 条),这是故意限速,几千条大约要一小时,让它挂着跑就行。中途按 Ctrl+C 也不会白跑:程序注册了信号处理,会把已抓到的数据先保存再退出。
消息列表抓完后还有第二路数据源:GetAllMomentsUtil 按每页 30 条拉取"未删除说说"接口,能覆盖到 2014 年之前的可见说说,再按内容比对和消息列表去重合并。消息列表够不到的部分,就是靠这步补上的。
输出:6 个 Excel、一个网页、一套图片
抓完后save_data按"条目里有没有你的昵称"以及"留言 / 转发"等关键词分流,写出六张表,把所有图片下载到本地(用说说内容命名,超 40 字符截断,重名自动加时间戳),最后用说说表和转发表渲染一个 QQ 空间风格的 HTML 网页:按时间倒序、QQ 表情还原成图片、缩略图自动换成高清、评论带头像。到这里,QQ空间历史说说的备份就完成了。
| 产物文件 | 字段 | 说明 |
|---|---|---|
| QQ号_全部列表.xlsx | 时间 / 内容 / 图片链接 / 评论 | 消息列表全部条目 |
| QQ号_说说列表.xlsx | 时间 / 内容 / 图片链接 / 评论 | 你自己发布的说说 |
| QQ号_转发列表.xlsx | 时间 / 内容 / 图片链接 / 评论 | 你转发的内容 |
| QQ号_留言列表.xlsx | 时间 / 内容 / 图片链接 | 好友给你留下的评论 |
| QQ号_其他列表.xlsx | 时间 / 内容 / 图片链接 | 列表里别人的说说 |
| QQ号_好友列表.xlsx | 昵称 / QQ / 空间主页 | 互动过的好友汇总 |
| QQ号_说说网页版.html | 网页 | 空间风格时间线,含评论 |
走一遍:一次完整的十年备份记录
设想一位 90 后用户,想找回 2012–2019 年的全部 QQ空间历史说说。
启动后终端先打出二维码,扫码确认,屏幕打印"用户<{QQ号},<昵称>>登录成功"。接着出现"正在获取消息列表数量"的二分查找进度条,每次探测都带 5 秒等待,大概几分钟结束。之后进入主循环,每 10 条提示一次"Pause for 3 seconds...",tqdm 显示整体进度。这段时间可以忙别的,别关终端就行。
若干分钟到一小时后(取决于条数),程序自动打开结果文件夹,并打印汇总:消息总数、最早一条说说的时间、好友数、说说数、转发数、留言数、图片数。目录长这样:
resource/result/ └── 12345678/ ├── 12345678_全部列表.xlsx ├── 12345678_说说列表.xlsx ├── 12345678_转发列表.xlsx ├── 12345678_留言列表.xlsx ├── 12345678_其他列表.xlsx ├── 12345678_好友列表.xlsx ├── 12345678_说说网页版.html └── pic/ # 全部说说图片打开 HTML 就是一条像空间的时间线:你的头像、说说正文、图片,下面挂着带头像的每条评论。Excel 直接按年份筛选,"2014 年的所有说说"是一次过滤的事。如果还想把 2014 年之前的可见说说导出成 Markdown(图片也下载到本地、含转发和评论),再单独跑一次python fetch_all_message.py即可,产物在resource/fetch-all/。
避坑指南:最常碰到的 3 个问题
⚠️ 以下三个基本覆盖了绝大多数报错现场。
启动即提示"无法找到 zbar 共享库"
症状:还没出现二维码,程序就打印"无法找到 zbar 共享库"并退出。原因:扫码用的 pyzbar 依赖系统级的 zbar 动态库,pip 装不上它。解法:先装系统库再重跑。Linux 执行sudo apt install zbar(dnf 系发行版用sudo dnf install zbar);macOS 执行brew install zbar,程序检测到 Homebrew 时也可以交互式自动安装。
反复出现"二维码已失效"或卡在认证中
症状:二维码刚打出来就失效,或者一直循环"二维码认证中"。原因:二维码有效期很短,超时没扫码确认就会失效;网络不稳定也会让轮询拿不到状态。解法:保证网络能正常访问 QQ 空间网页,二维码一出现就尽快在 2 分钟内扫完。登录成功一次后凭证缓存在resource/user/,重跑时选用户序号即可跳过扫码;输入 0 才是强制重新登录。
导出的时间线比预期短,"缺了几条说说"
症状:Excel 里最早的时间明显晚于记忆,自己发过的内容没出现。原因:主程序以空间消息列表为数据源,从未来过消息列表的说说(比如仅自己可见的)抓不到,这是数据源边界,不是 bug。解法:先确认空间设置里消息列表可见;再用python fetch_all_message.py导出可见未删除说说(含 2014 年前)的 Markdown 版本做对照。网络超时漏掉的个别条目属于正常现象,主程序按内容去重,重跑不会产生重复数据。
适合谁,能延伸出什么
对普通用户,最直接的收益是把散落十几年的记忆变成一套可存档的文件:HTML 相当于一个能离线翻的"第二空间",Excel 可以按年份筛出成长轨迹,甚至打印成册。
对偏技术和数据向的读者,这个仓库是个结构很干净的抓取小样本:扫码登录、二分探总数、分页限速、信号中断保存都是标准做法。导出的 Excel 也可以直接喂给情感分析或话题统计,做自己的数据实验。
和手动翻页的对比
| 维度 | GetQzonehistory | 手动翻页 / 截图 |
|---|---|---|
| 耗时 | 自动跑完,几千条约 1–2 小时(含限速等待) | 一次看十来条,几千条要翻好几天 |
| 登录方式 | 扫码一次,凭证本地缓存 | 每次手动登录,反复输密码或验证 |
| 数据形态 | 统一字段的 Excel + HTML + 图片目录 | 零散截图,无法筛选统计 |
| 覆盖范围 | 消息列表全部条目 + 可见未删除说说 | 翻到哪里算哪里,容易漏 |
| 处理位置 | 完全本地,数据不出本机 | 停留在浏览器里,无法结构化留存 |
写在最后
说说是互联网上最早的时间线之一,把它变成机器可读的文件,比截图更耐用。
- 按上面的 3 条命令克隆仓库并装好依赖
- 运行
python main.py,扫码完成第一次全量备份 - 打开
resource/result/QQ号/,逐个检查 Excel 和网页版 - 需要 2014 年之前的内容,再跑一次
python fetch_all_message.py补一份 Markdown
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考