GetQzonehistory:把QQ空间历史说说一键备份成本地Excel和HTML
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
翻空间找三年前发过的某条动态,翻到手指酸也定位不到?想按年份统计自己发了多少条说说,网页版却没有导出功能?GetQzonehistory 可以帮你把账号下的历史说说、评论和附图完整抓下来,存成 Excel 表格和网页版 HTML,全部留在本机。
它是什么
一个免费开源的 Python 小工具,跑在你自己的电脑上,不用部署服务器,也不用把账号密码交给任何第三方。它模拟 QQ空间网页版的扫码登录和请求流程,把互动消息列表和未删除说说列表两个来源合并去重后导出。登录只用 QQ 官方扫码,cookie 存在本地。
准备工作
- 克隆仓库,进入项目目录:
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory- 创建并激活 Python 虚拟环境(Python 3.8+ 均可):
python -m venv myenv # Windows 激活: .\myenv\Scripts\activate # macOS / Linux 激活: source myenv/bin/activate- 安装依赖:
pip install -r requirements.txt- 安装系统级 zbar 库(登录二维码识别依赖它,util/LoginUtil.py 里用到):
# Linux(RPM 系) sudo dnf install zbar # macOS brew install zbar完整操作流程
1. 运行主程序
执行:
python main.py看到:终端打印一段字符画形式的登录二维码,提示"登录二维码获取成功"。得到:一个待扫码的二维码,用手机 QQ 扫它。
2. 手机确认登录
在手机上用 QQ 扫码并确认。看到:终端依次出现"二维码认证中",随后"登录成功"。得到:程序自动进入抓取阶段,登录 cookie 同时被写入 resource/user/ 目录备用。
3. 等待分页抓取完成
程序从互动消息列表按每页 10 条翻页抓取,每批之间暂停 3 秒,控制台有进度条。看到:进度条推进,每批打印"Pause for 3 seconds..."。得到:抓完互动列表后,程序接着调用 util/GetAllMomentsUtil.py 走未删除说说接口补齐(可覆盖 2014 年之前的记录),并自动去重合并。
4. 查看导出结果
看到:终端打印消息总数、最早一条说说的时间、各列表条数、图片数量等统计,并自动打开结果目录。得到:以你的 QQ 号命名的结果文件夹,位于 resource/result/ 下。
你会得到什么
结果保存在resource/result/[你的QQ号]/目录中:
| 文件 | 用途 |
|---|---|
[QQ号]_全部列表.xlsx | 合并去重后的全部动态,含时间、内容、图片链接、评论 |
[QQ号]_说说列表.xlsx | 你自己发的说说 |
[QQ号]_转发列表.xlsx | 你的转发内容 |
[QQ号]_留言列表.xlsx | 你在别人空间下的留言 |
[QQ号]_好友列表.xlsx | 昵称、QQ 号、空间主页链接 |
[QQ号]_其他列表.xlsx | 好友的动态等其他内容 |
[QQ号]_说说网页版.html | 按时间倒序还原的空间样式页面,带头像、附图和评论区 |
pic/目录 | 说说附图的本地副本,文件名取自正文内容,重名自动加时间戳 |
Excel 里同时保留了原图链接,方便和图片目录比对、补下。
进阶玩法
- 复用登录状态:cookie 缓存在 resource/user/,再次运行时程序会列出已登录用户让你选择,不必重复扫码。缓存失效就选"重新登录"再扫一次。
- 调整抓取节奏:每批 3 秒的暂停写在 main.py 里的
time.sleep(3)。网络不稳或担心请求过快时把数值调大,不建议调得太小。 - 改保存位置:临时目录、登录缓存目录、结果输出目录都在 resource/config/config.ini 的
[File]段配置,想把备份放到别的磁盘直接改result路径即可。 - 只要纯文本存档:独立入口 fetch_all_message.py 只抓全部可见的未删除说说(含 2014 年之前),导出为单个 Markdown 文件,图片也一并下载,适合不想要 Excel 的场景。
- 改造抓取逻辑:请求、登录、工具函数分别在 util/RequestUtil.py、util/LoginUtil.py、util/ToolsUtil.py,按需修改即可。
避坑指南
- 报"无法找到 zbar 共享库"→ pyzbar 依赖系统级 zbar 而非 Python 包 → 用系统包管理器装(Linux 如
sudo dnf install zbar,macOS 如brew install zbar)后重跑。 - 二维码扫不了或提示已失效→ 二维码有时效,终端出现"二维码已失效"即过期 → 重新运行
python main.py获取新码;同时确认手机 QQ 在线且网络正常。 - 备份里找不到某条明明发过的说说→ 工具只能取回仍在互动消息列表里、或未删除且可见的内容 → 已删除且不可见的说说不在抓取范围,属预期行为。
- 中途按了 Ctrl+C→ 程序注册了信号处理,不会直接丢数据 → 已抓到的内容照常导出 Excel 和 HTML,无需重跑。
- 耗时比预期长→ 总条数多,每批固定暂停 3 秒 → 数千条通常要几十分钟,进度条会一直显示,耐心等或先去做别的事。
边界与合规
所有抓取和导出都在本机完成,数据不会上传到任何第三方服务器,登录走 QQ 官方扫码流程而不经过账号密码。备份完成后可以自行删除 resource/user/ 下的登录缓存,只保留结果文件。项目代码开源可审查,请仅用于个人学习和技术研究,并注意遵守 QQ 空间的相关使用条款。
现在就克隆仓库跑一遍python main.py,扫完码等进度条走完,你的空间时间线就会躺在resource/result/里了。更多细节可以看 README.MD。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考