三步导出QQ空间全部历史说到Excel:GetQzonehistory使用指南
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
找不回的旧说说
翻找一张几年前的合影时,你想起它发在QQ空间的一条说说里,可打开空间后发现,消息列表只保留近期内容,更早的动态早就从列表里消失了。逐页截图备份又太慢,而且图片链接一旦失效就再也追不回来。这正是 GetQzonehistory 要解决的问题:它通过模拟扫码登录QQ空间,把历史说说、转发、留言和评论批量拉取下来,连图片一并下载,最终导出为 Excel 和 HTML,让你拥有一份完整的本地档案。
这个工具能做什么
GetQzonehistory 是一个免费的 Python 开源工具,一句话定位:把你的QQ空间历史互动内容批量导出为本地 Excel 文件和网页版页面,图片一张都不落。
- 扫码登录,不碰密码:走QQ官方二维码登录,你只用手机QQ扫码,会话信息保存在本地,全程无需输入账号密码。
- 双通道取数:历史消息列表之外,还补了一条"未删除说说列表"通道,消息列表里看不到的旧说说也能被抓回来。
- 多格式本地导出:一次运行产出六份 Excel(说说、转发、留言等)、一份还原空间版式的 HTML 网页和一个图片目录。
五分钟完成首次导出
- 克隆项目并创建虚拟环境:
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory python -m venv myenv- 激活虚拟环境:Windows 用
myenv\Scripts\activate,macOS/Linux 用source myenv/bin/activate。 - 安装依赖并启动主程序:
pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt python main.py- 终端会打印出一个二维码,用手机QQ扫一下,程序自动开始抓取。
- 结束后在
resource/result/目录下找到以你QQ号命名的文件夹,那就是你的档案。
提示:工具仅限学习与技术研究用途,只归档自己账号的数据,请自行承担使用风险。
导出过程到底做了什么
整个流程分四步,每步只干一件事:
1️⃣ 扫码登录
程序向QQ登录接口请求二维码,解码后以字符画形式打印在终端,然后每 3 秒轮询一次登录状态。成功后 Cookie 存进resource/user/目录,下次运行直接选已登录用户即可,不用重复扫码。
2️⃣ 双通道抓取
- 消息列表通道:先用二分法估算账号消息总量(接口不直接返回总数),再按每批 10 条翻页拉取,每批之间停 3 秒防限流。
- 未删除说说通道:从空间说说列表接口按每页 30 条翻页,这条通道能捞回已经从消息列表里消失的旧内容。
两路数据按内容去重后合并,避免同一条说说出现两次。
3️⃣ 清洗与分类
原始数据噪音不少。程序会剔除重复内容、处理不间断空格,日期解析同时兼容带秒和不带秒两种格式(早期条目常常缺秒字段)。之后按关键词分流:内容含"转发"的进转发列表,含"留言"的进留言列表,其余归入说说列表和其他列表。
4️⃣ 多格式导出
最终产出如下,全部落在你的QQ号命名的目录里:
| 文件 | 内容 |
|---|---|
| QQ号_全部列表.xlsx | 消息列表的完整记录 |
| QQ号_说说列表.xlsx | 你发布的原创说说 |
| QQ号_转发列表.xlsx | 所有转发内容 |
| QQ号_留言列表.xlsx | 收到的留言记录 |
| QQ号_其他列表.xlsx | 其他类型互动 |
| QQ号_好友列表.xlsx | 好友昵称、QQ号、空间主页 |
| QQ号_说说网页版.html | 还原空间版式的网页,含图片与评论 |
| pic/ 目录 | 全部说说图片,以说说内容命名 |
效率技巧与优化
- zbar 装不上导致程序起不来→ pyzbar 依赖系统 zbar 库,先手动装:
sudo apt-get install libzbar0 # Ubuntu/Debian sudo yum install zbar # CentOS/RHEL- 数据量大、怕中断→ 程序注册了信号处理,随时
Ctrl+C都会先把已抓数据存盘,下次运行还能接着用缓存。 - 第二次运行更快→ 未删除说说接口的数据有 JSON 缓存,重复运行时直接复用,不用重新翻页。
- 快速定位某张图→ 图片以说说内容命名(截断到 40 字符),按关键词搜文件夹一般直接命中。
- Cookie 过期→ 在用户选择界面输 0 重新扫码即可,不用重装任何东西。
常见问题速查表
- 启动报"无法找到 zbar 共享库":1. 按上文命令安装 zbar;2. macOS 上可用 Homebrew,程序会提示你是否自动安装并创建软链接;3. 装完后重装一次 pyzbar 再启动。
- 二维码失效或长时间停在"认证中":1. 检查手机QQ能否正常联网且为较新版本;2. 重新运行程序生成新二维码;3. 核对系统时间,时间偏差过大会导致鉴权失败。
- 导出条数比预期少:1. 设为"仅自己可见"的说说不在消息列表,抓不到;2. 早期已删除的说说同样无法恢复;3. 网络超时会跳过个别批次,有缓存,再跑一次补齐即可。
- 部分图片下载失败:1. 年代久远的图片链接可能已失效,属正常现象;2. 检查代理是否影响图片域名访问;3. 看终端输出定位具体失败的链接。
- pip 安装依赖失败:1. 确认 Python 版本不低于 3.6;2. 换国内镜像源再试;3. 逐条安装依赖,定位具体出问题的包。
源码架构导读
项目由一个主入口、一个独立入口和若干工具模块组成,分工清晰:
| 文件 | 职责 |
|---|---|
| main.py | 主入口:协调登录、抓取、分类、Excel 保存与 HTML 渲染 |
| fetch_all_message.py | 独立入口:只抓未删除说说,输出 Markdown 版本 |
| util/LoginUtil.py | 二维码生成、登录状态轮询、Cookie 保存与选择 |
| util/RequestUtil.py | 消息列表接口请求、二分估算消息总量 |
| util/GetAllMomentsUtil.py | 未删除说说翻页抓取、评论解析 |
数据流是:main.py启动 →LoginUtil登录 →RequestUtil分页拉消息列表 →GetAllMomentsUtil补未删除说说 → 最后由main.py里的save_data统一落盘。想深入阅读,建议直接从save_data函数开始。
进阶玩法
1. 做一份个人年度报告适用场景:想回顾自己一年里的活跃节奏。
- 用 Excel 或 pandas 打开"全部列表.xlsx",从"时间"列提取年份和月份。
- 按年、按月分组计数,生成折线图。
- 直接读出哪些年份、哪些月份你最爱发空间。
2. 整理纪念日时间线适用场景:毕业、生日、异地搬迁这类节点回忆。
- 打开"说说网页版.html",带图和评论地预览全部内容。
- 在"说说列表.xlsx"里按"毕业""生日"等关键词筛选内容列。
- 配合 pic/ 目录里的图片按时间排好,就是一册数字纪念册。
3. 统计社交圈适用场景:想知道谁和你互动最多。
- 用"好友列表.xlsx"做名单,按留言出现次数排序。
- 汇总评论列,找出评论频率最高的前几位好友。
- 用 NetworkX 把"我—好友"画成节点与边,得到一张社交关系图。
写在最后
那条发在空间里的合影,只要还没删,现在补档也不算晚。克隆仓库、运行main.py、扫一次码,一个小时后你的全部历史说说和图片就会安安静静躺在本地文件夹里,随你备份到哪里都行。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考