GetQzonehistory:扫码一次,把 QQ 空间历史说说全量导出成 Excel 的实用指南
2026/9/20 3:26:13 网站建设 项目流程

GetQzonehistory:扫码一次,把 QQ 空间历史说说全量导出成 Excel 的实用指南

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

GetQzonehistory 是一款面向想给空间数据做本地存档的用户的 Python 脚本:通过模拟扫码登录 QQ 空间,抓取该账号的全部历史说说,输出为六张 Excel 表格、本地图片文件夹和一个可离线浏览的网页。读完本文约 10 分钟,你会完整掌握从克隆到首次全量导出的流程,以及每个产物落在哪里、漏抓的条目怎么补。

能力清单:它替你解决的三件实事

1. 全量抓取:两个接口互为补位

消息列表做主线、说说接口做补位,合并去重后"还在"的内容不再漏抓。主程序 main.py 先按每批 10 条拉取历史互动消息列表,这个来源里既有你自己说说的文本、图片与评论,也含转发和好友留言;随后再调用未删除说说接口、每次翻 30 条翻页,两路数据按内容去重后合并。这一步专门用来补齐已经从消息列表里掉出去的条目。

2. 多格式归档:一份数据三种产出

同一批数据被写成表格、图片、网页三份,各自独立可用。内容按身份拆成六张 xlsx:全部列表、说说列表、转发、留言、其他与好友列表,列结构统一为时间、内容、图片链接、评论;说说附带的图片逐张下载到 pic 目录,文件名取说说正文并截断到 40 字符防重名;最后拼出一页按时间倒序的网页,QQ 表情被还原成图片形式,离线点开就能读。

3. 状态持久化:不重复扫码、不从头再来

登录态落盘,中断时已抓部分照样保存。扫码成功后 cookie 写入 resource/user/ 目录,下次运行程序直接列出已登录用户供你选序号,无需重新扫码;程序还注册了 SIGINT 与 SIGTERM 信号处理,中途按下 Ctrl+C 会自动触发一次已抓数据的落盘。

原理拆解:从扫码到 Excel 的三段链路

把它理解成雇了一位"代理档案员":你交出工牌,他按页抄录档案、编号归档,最后整齐码在你桌上,你不必再回档案室。整条链路拆成三段:

  • 凭证段:util/LoginUtil.py 向登录服务请求二维码,轮询到"登录成功",并用返回的 p_skey 算出后续所有接口都要用的签名参数 g_tk。
  • 数据段:请求模块对消息列表与说说列表两个接口依次发起分页请求,每次请求后固定歇息一段,刻意压低节奏。
  • 产出段:工具模块负责 HTML 清洗、表情还原与网页模板,pandas 负责把数据写成 Excel。

输出路径在哪落盘,由 resource/config/config.ini 里三行定死:

[File] temp = ./resource/temp/ user = ./resource/user/ result = ./resource/result/

一套 cookie、两个接口、三种产出,原理到此为止。

跑通步骤:四步从克隆到首次导出

这是纯脚本项目,不需要编译,不装插件,不碰 C 工具链,路线就是:克隆、装依赖、运行、查产出。

第一步 📦 克隆仓库—— 放到你选定的本地目录,所有产物只写入本地克隆内的 resource 子目录,仓库代码文件保持原样:

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

第二步 🔧 认清依赖—— requirements.txt 共 11 项,重量级的是 pandas、beautifulsoup4 与 pyzbar;其中 pyzbar 还要系统级 zbar 共享库配合。

第三步 ⏱️ 一条命令装完就跑—— macOS/Linux 可直接用下面这条命令串(Windows 把激活命令换成.\myenv\Scripts\activate):

python -m venv myenv && source myenv/bin/activate pip install -r requirements.txt python main.py

终端会以 ASCII 字符画打印登录二维码,用手机 QQ 扫完等"登录成功"出现,程序随即开始拉消息列表,进度条按批推进。

第四步 🗂️ 检查产出并补抓—— 跑完会自行打开导出目录,里面应有一整套 Excel、pic 图片目录和说说网页 html。若消息列表覆盖不满意,可再单独执行python fetch_all_message.py:它拉取可见的未删除说说(含 2014 年之前的内容),额外产出一份 Markdown 归档。

成本与收益:运行代价与硬件底线

代价维度不用工具(手动)工具运行后
千条消息的获取耗时数小时逐条滚动保存自动翻页,全程约 15 分钟
磁盘图片散落在各设备集中于 result 目录,文件名自动截断防冲突
登录态每次重新验证cookie 缓存,重跑只选序号

硬件底线:不需要 GPU 与编译工具链,有网络、Python 3.x 和 2 GB 空闲内存的主流电脑即可,系统层面唯一额外依赖是 zbar。机器很旧或不想搭 Python 环境,直接取 Release 页面已打包好的单文件运行,零配置。

排障清单:四个高频问题

症状原因解法
首次运行提示"无法找到 zbar 共享库"后退出pyzbar 依赖的系统库缺失Linux 执行sudo dnf install -y zbar;macOS 用brew install zbar,脚本会自行检测并提示
每次都要重新扫二维码cookie 过期或未成功落盘扫码成功后 cookie 写入 resource/user/,下次运行从已登录用户列表选序号即可
导出条数明显少于空间里的仅自己可见与已删除的说说不出现在两个接口里补跑 fetch_all_message.py 拉可见未删除部分;真正仅自己可见的内容属接口盲区
怕 Ctrl+C 后数据全丢担心手动结束进程打断落盘信号处理器已注册,中断即保存已抓部分;或放任它跑完,结束后自动落盘并打开目录

延伸方向

  • 把脚本挂进定时任务,做成周期性的自动备份
  • 基于 Excel 产出做发布时间、频率与图片数量的统计分析
  • 用 Markdown 归档配合静态站点生成,搭一个个人存档页

收尾前勾掉三个自检项

  • 扫码后:终端先打印"登录二维码获取成功",再打印"登录成功",且 resource/user/ 下多出一个 cookie 文件。
  • 运行后:resource/result/{QQ号}/ 目录里同时出现 Excel 表格、pic/ 目录与说说网页 html。
  • 打开网页:说说按时间倒序排列,图片与评论正常渲染,表情以图片形式显示。

遇到接口变更或导出缺陷,直接在仓库 Issue 区提交,或发邮件联系作者;作者在说明中明确留出了由社区补全代码的空间。

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

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

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

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

立即咨询