☰
GetQzonehistory:一次运行,把多年QQ空间说说、图片评论备份成六张Excel表
2026/10/16 2:02:36 网站建设 项目流程

GetQzonehistory:一次运行,把多年QQ空间说说、图片评论备份成六张Excel表

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

想翻找几年前的那条说说,得在空间消息列表里一页页往前翻,翻到一半可能就放弃了。GetQzonehistory 接手这种体力活:扫一次码,它把历史说说、配图、评论自动抓下来,存成 Excel 表格和网页,最后留给你一份完整的本地档案。

先看看这个工具能给你什么

GetQzonehistory 是一个QQ空间历史说说的本地备份工具。跑完一次,你手里会多出:

  • 六张 Excel 表:全部列表、说说列表、转发列表、留言列表、其他列表、好友列表
  • 一个pic/图片文件夹:全部配图下载到本地,按说说内容命名
  • 一份说说网页版.html:带头像、时间、配图、评论的网页存档,浏览器直接打开
  • 如果还需要高清图文档,另有一个独立脚本 fetch_all_message.py 可输出带本地图片的 Markdown

适合两类人:一是积累了大量说说、想要一份完整本地副本的人;二是想拿旧说说做统计(比如按年份看发布频率、找互动最多的好友)或者做电子纪念册的人。

首次把 GetQzonehistory 跑起来

前提只有一条:电脑上装好 Python 3.9 及以上版本。

第一步:拿到项目

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

跑完你会看到:main.py、fetch_all_message.py两个入口脚本,requirements.txt 依赖清单和util/工具目录。

第二步:建一个独立运行环境

python -m venv myenv # Windows: myenv\Scripts\activate # macOS / Linux: source myenv/bin/activate

跑完你会看到:终端命令行开头多了一个(myenv)前缀,说明环境已激活。

第三步:安装依赖

pip install -r requirements.txt

跑完你会看到:pandas、openpyxl、requests、Pillow、pyzbar、qrcode 等十一个包依次安装完成。

第四步:启动主程序

python main.py

跑完你会看到:终端先打出一个登录二维码,用手机 QQ 扫码确认;随后程序开始分批抓取并显示进度条;跑完后自动打开结果文件夹,并依次报出"共有 N 条消息""最早一条说说发布于……""好友列表共 N 个""图片列表共 N 张"。

登录状态有一层缓存:凭证会以 QQ 号命名存在resource/user/目录下,下次再运行会列出已登录账号让你选序号,输入 0 才是重新扫码。多账号来回切换不用反复扫。

跑完得到的东西:结果文件夹逐条看

所有结果统一放在resource/result/你的QQ号/目录:

你的QQ号/ ├── 你的QQ号_全部列表.xlsx # 时间、内容、图片链接、评论 ├── 你的QQ号_说说列表.xlsx # 我发布的 ├── 你的QQ号_转发列表.xlsx # 我转发的 ├── 你的QQ号_留言列表.xlsx # 我留言的 ├── 你的QQ号_其他列表.xlsx # 好友的互动 ├── 你的QQ号_好友列表.xlsx # 昵称、QQ、空间主页 ├── 你的QQ号_说说网页版.html # 离线浏览存档 └── pic/ # 全部配图,按内容命名
  • 全部、说说、转发四列表结构相同,都是时间、内容、图片链接、评论四列;留言和其他表只有三列,不带评论。
  • 好友列表三列是昵称、QQ、空间主页,来自消息列表中出现过的全部好友信息,顺手就能导出。
  • 图片统一放进pic/,按说说内容命名,文件名超过 40 字符自动截断,重名自动加时间戳。
  • 网页版把说说和转发两套数据按时间从新到旧合并排版,配深色背景样式,直接当纪念册翻。
  • 中途按 Ctrl+C 中断,已抓到的数据也会先落盘,不白跑;结果和缓存放哪里可以在resource/config/config.ini里改。

原理拆解:一次照片档案馆整理的全过程

把整个流程想象成档案馆整理旧照片档案,分四步走:

领取取件凭证。扫码登录相当于在窗口出示证件,平台发给你一串凭证(cookie)。程序把它写进本地,之后每一批请求都凭它通行,凭证过期才需要重新扫码。

逐架取胶卷。历史消息通道每批取 10 条,每批结束歇 3 秒再取下一批,请求节奏控制在普通用户水平。程序还会先探明消息总条数,让进度条有总数可显示。

核对两套目录。可见说说通道每页取 30 条,取完后与消息列表交叉比对、去掉重复项;只在这条通道里的旧内容(包含 2014 年之前)保留下来,逻辑见 util/GetAllMomentsUtil.py。

分拣上架。数据按归属分进六张表,图片下载进pic/,说说加转发再合并渲染出网页版——也就是上面那个目录结构。

它抓不到的部分:工具边界在哪

先说清一点:仅自己可见的说说、已删除的说说,都拿不到。消息通道只能取到过消息列表里的记录,可见通道只能取到未删除的说说;两条通道都覆盖不到的内容,这次运行就不会有。

其次,它只处理你自己的账号,不抓取别人的空间。

如果你嫌旧内容偏少,有个替代方案:单独运行 fetch_all_message.py,它直接走可见说说通道,把所有未删除的说说(含 2014 年之前的)连同高清图拉下来,在resource/fetch-all/下生成一篇带本地图片引用的所有可见说说.md,适合直接发到博客。两条通道叠加后,未删除说说的覆盖率已经相当高。

遇到问题先看这里

  1. 停在"二维码认证中"不动了 二维码过期或网络不稳导致。重新运行程序生成新二维码,顺便确认系统时间没有漂移。
  2. 启动时报找不到 zbar 共享库 二维码解码依赖的 pyzbar 需要系统先装 zbar。Linux 上基于 RPM 的系统执行sudo dnf install -y zbar;macOS 上程序会检测 Homebrew,回答 y 后自动安装并创建符号链接。
  3. pip 安装依赖失败 大多是网络问题,给 pip 指定一个国内镜像源,重新执行pip install -r requirements.txt即可。
  4. 抓取中途提示请求超时或失败 个别批次会被自动跳过并继续,别急着重跑;整体中断时已抓数据会自动保存,等网络平稳再跑一次补上就行。
  5. 想换账号,或者登错账号了 重新运行主程序,在已登录账号列表里输入 0 即可重新扫码,之后选正确的序号。

说说躺进自己硬盘上的表格和图片文件夹,才是真正随时可查、随意分析、能打印成册的状态。照例提醒:GetQzonehistory 仅供个人回忆保存与学习使用,请遵守相关法律法规与平台条款,只备份自己账号的数据,尊重他人隐私,不要将内容用于传播或商业用途。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询