GetQzonehistory 使用指南:快速导出QQ空间全部历史说说
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
你翻到过2014年的老说说吗?QQ空间网页版时间线只保留最近一两年,再早的内容基本翻不出来,想打包带走更无从下手。GetQzonehistory 解决的就是这件事:模拟登录你的QQ空间,把账号下所有可见的历史说说、图片和评论批量导出成本地 Excel、Markdown 和网页文件,做完一次完整的QQ空间数据迁移。
🎯 为什么值得一试:备份老说说的四个理由
- 老说说能捞回来:接口按页翻页抓取,2014 年前的可见说说也在范围里,不用手动一条条翻。
- 图片评论一起走:图片直接存进本地 pic/ 文件夹,评论整条保留,不怕图片链接哪天失效。
- 结果自动分类:一次跑出"全部、说说、转发、留言、其他"五张 Excel 表,外加一张好友列表。
- 多份备份形态:Excel、Markdown、网页三种格式,HTML 双击就能翻,适合长期存档。
🚀 三步装好它:从克隆到跑通
动手前确认三件事:
- 已装 Python 3(3.9 以上即可,仓库自带 3.12 虚拟环境)
- Linux 先装 zbar(终端解析二维码用):sudo dnf install zbar;macOS 用 brew install zbar
- 准备一个能正常扫码的 QQ 号
安装步骤:
- 克隆仓库:git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
- 创建虚拟环境并激活:python -m venv myenv,Windows 运行 myenv\Scripts\activate,macOS/Linux 运行 source myenv/bin/activate
- 安装依赖:pip install -r requirements.txt(共 11 个库)
- 运行主程序:python main.py,终端出现二维码,手机 QQ 扫码即可
跑通后,设置入口在 resource/config/config.ini,只控制 temp、user、result 三个目录的位置:
[File] temp = ./resource/temp/ user = ./resource/user/ result = ./resource/result/🛠️ 功能实战:四个最实用的动作
扫码登录:密码不碰,Cookie 自己存
第一次运行,终端里直接打印 ASCII 二维码,对着屏幕用手机 QQ 扫即可。扫完自动算好 cookies 存进 resource/user/,下次运行会列出已登录账号让你选,多账号切换不用重扫。请求接口用的 g_tk 签名由 p_skey 简单哈希得出:
def bkn(pSkey): t, n, o = 5381, 0, len(pSkey) while n < o: t += (t << 5) + ord(pSkey[n]) n += 1 return t & 2147483647实现见 util/LoginUtil.py。
全量抓取:翻遍整个时间线
独立入口 fetch_all_message.py 按每页 30 条调消息接口,把你账号下所有可见、未删除的说说翻完;中间结果落盘缓存,中断重跑不用从头来。最后产出一份"所有可见说说.md",文字、高清图、转发原文和全部评论都在。抓取逻辑在 util/GetAllMomentsUtil.py。
分类导出:五张表自动分堆
主程序把消息列表过一遍,按昵称区分自己的说说、转发、收到的留言和其他内容,落盘成五张 Excel 表;图片链接逐条下载存进 pic/,文件名自动截断防重名。中途按 Ctrl+C,信号处理会先把已抓到的部分保存。入口在 main.py。
网页版还原:老空间装进一个 HTML
表导完还会渲染一份网页版:头像、QQ 表情、评论都还原,图片地址自动从小图改写成大图,看到的是高清原图。双击"说说网页版.html",浏览体验和当年的空间一致。页面模板与表情替换见 util/ToolsUtil.py。
🔍 原理速览:它到底爬了什么
它不开浏览器,全程用 requests 模拟网页请求。登录走官方 ptlogin2 的二维码流程:取码、轮询、校验签名三步拿到 cookie;抓取主打下一个接口——user.qzone.qq.com 的消息列表,请求签名 g_tk 由 cookie 里的 p_skey 哈希得出,响应是 JSONP,剥掉回调壳再解析。代码按职责分层:util/ 下登录、请求、抓取、配置、模板各占一个文件,落盘数据统一放在 resource/ 的 config、temp、user、result 四个子目录,整体流程就是"扫码登录→分页取消息→解析分类→存表、图、网页":
💬 遇到问题去哪里问
- zbar 缺失、二维码扫不上、macOS 适配问题:直接去 GitHub 仓库 LibraHp/GetQzonehistory 的 Issues 区翻帖子或提问
- 作者在 B 站有完整食用教程视频(账号 1117414477),扫码登录逐步演示
- README 明说"代码有很多疏漏",欢迎提 PR 补功能、提 Issue 报 bug
只想备份自己老说说的,扫码跑一遍 main.py 就完事;想要纯文字存档,换 fetch_all_message.py 出 Markdown。下一步打开 resource/result/ 目录,看看自己这些年攒了多少东西。
提醒:工具依赖 QQ 空间网页接口,接口或登录流程变动可能使其失效;请只导出自己账号的数据,保留代码里的默认请求间隔,不要用它批量抓取他人内容。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考