ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

GetQzonehistory:基于 Python 的 QQ 空间数据备份工具,把历史说说全量导出为 Excel

GetQzonehistory:基于 Python 的 QQ 空间数据备份工具,把历史说说全量导出为 Excel

GetQzonehistory:基于 Python 的 QQ 空间数据备份工具,把历史说说全量导出为 Excel

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

翻看旧说说时,图片链接早已失效,内容也被折叠成一行。GetQzonehistory 是一个基于 Python 的 QQ 空间历史数据导出工具:扫码登录后,它把说说、转发、留言和好友信息备份导出为 Excel 文件,全程在本地完成。

📦 跑完你能拿到什么:QQ 空间说说导出文件清单

进度条跑完后,终端会直接打开结果目录,文件都落在resource/result/你的QQ号/下。按「内容记录 / 社交关系 / 可视化页面」三个维度归类:

维度文件内容与用途
内容记录{QQ号}_全部列表.xlsx按时间排序的全部互动记录:说说、转发、留言、其他类型
内容记录{QQ号}_说说列表.xlsx你发布的原创说说,只留本人内容时用
内容记录{QQ号}_转发列表.xlsx你转发过的内容,保留原始转发上下文
内容记录{QQ号}_留言列表.xlsx好友留在你说说下的评论
内容记录{QQ号}_其他列表.xlsx不属于以上几类的其他互动
内容记录pic/目录说说配图逐张下载,按说说文字命名
社交关系{QQ号}_好友列表.xlsx互动好友的昵称、QQ 号与空间主页链接
可视化页面{QQ号}_说说网页版.html还原空间说说页,浏览器打开即可看图和评论

每张表都按 时间 / 内容 / 图片链接 / 评论 四列组织(留言列表没有评论列)。「图片链接」存的是线上 URL,长期保存图片以pic/里的本地副本为准;评论以 JSON 形式放在「评论」列,评论人、时间、原文都在里面。导出结束时终端还会打印各列表总条数、最早一条说说的时间,方便你快速核对是否完整。

三步完成备份:QQ 空间备份需要什么环境

前置条件只有 Python 3.6+ 和 git,Windows、macOS、Linux 三个平台都能跑,不需要浏览器插件或额外服务。

  1. 克隆仓库,一条命令装好全部依赖。
  2. 执行python main.py,终端打印黑白二维码,用 QQ 手机 App 扫码并确认。
  3. 等待进度条走完;cookie 会保存到resource/user/,第二次及以后运行直接选择序号复用,无需再扫码。
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory pip install -r requirements.txt python main.py

Linux 和 macOS 还需要系统自带的 zbar 库,缺失时终端会给出提示,处理方式见下文「常见坑」一节。

它是怎么工作的:扫码到落盘的四个环节

整体是一条线性流水线:扫码登录 → 分页拉取 → 清洗去重 → 落盘导出。

登录模块 先从 QQ 官方接口取登录二维码并打印在终端,扫码成功后 cookie 存到本地,下次运行直接复用。接着请求模块 用二分法探出消息总数,再每 10 条一批地翻消息列表,每批固定休息 3 秒;说说模块 额外按每页 30 条抓取「可见说说」列表,这部分覆盖 2014 年之前的未删除帖子,并且带高清图链接。两路数据用 BeautifulSoup 解析,按内容去重合并,再用 pandas 写成 Excel、并行下载图片、生成还原空间的 HTML 页面;中途按 Ctrl+C 也会先把已抓到的数据存盘再退出。输出目录的位置可以在resource/config/config.ini里改。

几个核心依赖,各司其职:

依赖用途
requests向空间接口发起请求,模拟真实浏览器的请求头
beautifulsoup4解析消息列表 HTML,抽出时间、内容与图片链接
pandas + openpyxl整理数据并写出 .xlsx 文件
qrcode / pyzbar生成登录二维码并在终端解码,pyzbar 需系统安装 zbar

常见坑与解决办法:QQ 空间备份最容易遇到的 5 种情况

启动时终端提示「无法找到 zbar 共享库」并直接退出。二维码解码依赖系统级 zbar 库,pip 装不了它。Linux 执行sudo dnf install zbar,macOS 执行brew install zbar,再重新运行即可。

导出的条数比在空间里看到的少。数据主要从消息列表采集,从未出现在列表里的、仅自己可见的说说拿不到。对照第二步抓取的可见说说列表核对,仍存疑就重跑一次比对。

中途打印「请求超时」,某批次返回为空。网络波动或接口限流,代码每批已固定休息 3 秒。直接重跑程序,可见说说列表有本地 JSON 缓存,第二次直接读缓存,速度快很多。

pic/目录里少了部分图片。原图已被平台移除,工具会自动跳过失效链接。在全部列表 Excel 的「图片链接」列核对哪些链接失效,其余数据不受影响。

第二次运行没有直接开始抓取,而是让你「选择要登录的用户序号」。本地已存有之前登录过的账号信息。输入对应序号即可复用 cookie,输入 0 则重新生成二维码扫码。

适合谁

  • 空间老用户:把多年的帖子一次性搬进自己硬盘,不再受平台内容隐藏影响。
  • 数据分析爱好者:用 Excel 里的时间、内容字段统计发帖频率、活跃时段。
  • 回忆录作者:把 HTML 页面和下载好的图片当素材整理纪念内容。
  • 开发者:把它当小样本,学一遍模拟浏览器请求、分页抓取与本地解析的完整链路。

按上面三步把仓库拉下来跑一遍,扫码后等进度条走完,结果就在resource/result/你的QQ号/目录里。如果只需要可见说说,也可以单独执行python fetch_all_message.py,它会另存一份 Markdown 版的说说。

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

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

RELATED READING

延伸阅读

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