GetQzonehistory:扫码一次,把QQ空间历史说说全部导出成Excel
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
想把QQ空间的历史说说导出来?网页版翻到后面就看不到更早的内容,也没有任何"全部导出"的入口。GetQzonehistory 就是解决这个历史说说导出问题的工具:扫码登录一次,它把账号下所有可见的说说分批拉下来,生成 Excel 表格、本地图片和一个能直接打开的网页版时间线。
- 扫码登录,不碰账号密码
- 双数据源互补抓取
- 说说图片自动下载本地
- 按类别导出多张Excel
- 一键生成网页版时间线
快速上手:从拿代码到出结果的5个步骤
环境要求:Python 3.7 及以上。下面每步都是可以直接复制的命令。
第1步,拿代码:
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory第2步,建虚拟环境(把依赖和系统环境隔离开,避免互相干扰):
python -m venv myenv第3步,激活环境(Windows 用第一条,Linux/macOS 用第二条):
myenv\Scripts\activate # Windows source myenv/bin/activate # Linux / macOS第4步,装依赖:
pip install -r requirements.txt国内网络可以在-r前面加一个 PyPI 镜像源参数加速。依赖里的 pyzbar(把条形码解析成文本的 Python 库)还需要一个系统级 zbar 库,没有它程序会直接退出,装库方法放在下一节的登录步骤里说。
第5步,启动主程序:
python main.py使用过程:跟着登录、抓取、查看走3步
第1步:扫终端里的二维码登录
启动后终端会打印一个字符二维码图案,用手机 QQ 扫一下就行,等待期间会轮询显示"未失效 / 认证中 / 登录成功"。登录成功会打印"用户<QQ号>,<昵称>登录成功",这就是正常的。cookie(证明登录状态的凭据字符串)会存到本地,下次运行直接选账号,不用重扫。两种卡点提前说:一是启动提示"无法找到 zbar 共享库",用系统包管理器补装即可——Linux 执行sudo dnf install -y zbar或sudo apt install libzbar0,macOS 执行brew install zbar;二是字符码在个别字体下看不清,二维码同时存成了图片,直接打开resource/temp/目录下的 QR 图扫。
第2步:分页抓取历史说说,别中途关窗
登录后有两次抓取:先拉互动消息列表,每页 10 条、页间停 3 秒,终端会不停刷"Pause for 3 seconds...";再拉可见未删除的说说列表,每页 30 条。看到两条进度条依次走完就算正常。数据多时耗时会明显拉长,这是限频策略不是卡死,放着跑完即可;确实要中断时按 Ctrl+C,已抓到的部分会先落盘再退出。
第3步:核对统计数字
结束时终端会打开结果目录并打印一串统计:总消息数、最早一条说说时间、说说/转发/留言/好友/图片各有多少。这些数字是后面验证是否跑偏的对照基准,建议截图留底。
原理白话:抓取与分类的3个核心机制
两个数据源互补抓取
互动列表能覆盖你参与过的记录,但翻得深了老内容会漏;可见说说列表(逻辑在util/GetAllMomentsUtil.py)先查总条数和页数,再逐页请求,能补上互动列表翻不到、但空间里仍可见的早期记录。两份结果合并前先按内容去重,同一条说说只算一次。
限频、缓存与中断保护
主流程(main.py)每请求 10 条互动就停 3 秒,控制对服务端的请求频率。第二来源带本地缓存:已拉取的数据写成 JSON 落盘,重跑时读缓存、不重复请求,所以中断后重跑是安全的。程序还注册了信号处理,Ctrl+C 结束前会先把内存里的数据写出。
关键词分类与内容去重
每条记录按内容归位:带"留言"的进留言表,带"转发"的进转发表,昵称是你自己的进说说表,其余归入其他表;互动里出现的好友单独汇成一张好友表。时间字段兼容带秒和不带秒两种格式;内容级去重保证同一条说说不会在多张表里重复出现。
导出产物一览:6张Excel、1个HTML和1个图片目录
所有文件统一在resource/result/你的QQ号/下:
| 文件 / 目录 | 内容 |
|---|---|
| QQ号_全部列表.xlsx | 抓到的全部记录(含其他好友内容) |
| QQ号_说说列表.xlsx | 你发布的原创说说 |
| QQ号_转发列表.xlsx | 你的转发记录 |
| QQ号_留言列表.xlsx | 你留下的留言 |
| QQ号_其他列表.xlsx | 其他好友的说说 |
| QQ号_好友列表.xlsx | 互动中出现的好友 |
| QQ号_说说网页版.html | 网页版时间线,浏览器直接打开 |
| pic/ | 逐张下载的说说的图片 |
各说说表的字段含义(以时间、内容、图片链接、评论四列为主):
| 字段 | 含义 |
|---|---|
| 时间 | 说说或互动发生的时间 |
| 内容 | 全文,前面带发布者昵称 |
| 图片链接 | 图片地址,多张以逗号分隔 |
| 评论 | 评论时间、内容、评论人昵称与QQ号 |
| 昵称 / QQ | 好友的昵称和QQ号(好友列表表) |
| 空间主页 | 好友空间主页链接 |
🔍 验证与排错清单:确认导出没跑偏
先勾对4项指标:
- 终端打印的"最早一条说说"时间,接近你开始用QQ空间的年份
- 网页版 HTML 里时间线、图片、评论渲染正常
- 说说列表的行数与 pic/ 目录图片数量大致对得上
- 好友列表条数不为0(前提是你有互动记录)
对不上时,对照高频问题:
| 问题 | 原因 | 解决 |
|---|---|---|
| 提示"无法找到 zbar 共享库"退出 | pyzbar 缺系统库 | Linuxdnf install -y zbar或apt install libzbar0,macOSbrew install zbar |
| 字符二维码看不清扫不出 | 字体渲染不完整 | 打开 temp 目录的二维码图片直接扫 |
| 导出缺少某些说说 | 只取可见范围记录 | 仅自己可见或已删除的拉不到,属机制边界 |
| 运行很久像卡死 | 每10条停3秒 | 放着跑完;中断用 Ctrl+C,数据会先保存 |
| 下次运行要求重新扫码 | 登录 cookie 过期 | 重新扫码;频繁出现先检查系统时间 |
边界与合规:它不做什么
工具只抓你本人账号可见的数据,登录、抓取、导出全部在你自己机器上完成,不会上传到任何第三方服务器。但导出文件里含好友的昵称、QQ号和评论内容,属于他人个人信息,不要把 Excel 或 HTML 对外公开。说说的文字和图片受QQ平台及原作者版权约束,本工具仅限个人备份与技术研究,不要用于商业用途或批量抓取。
跑通之后先核对"最早记录时间"和各表行数是否符合预期,确认无误再做一次正式的全量导出;之后把resource/result目录定期备份到另一块存储,原目录留着可以随时增量重跑。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考