GetQzonehistory:一步导出全部QQ空间历史说说的完整指南
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
翻 QQ 空间时,你大概遇到过这种情况:往前翻了几十页,列表就到底了,三五年前的记录想都别想。网页版根本没有"导出全部"的入口,早期内容连浏览都成问题。
GetQzonehistory 就是为这件事做的QQ 空间历史说说导出工具:扫码登录一次,它把账号下所有可见的分页记录抓全,最后交付三样东西——几张分类 Excel、本地图片目录、一个能用浏览器直接打开的网页时间线。
它填补了哪个空白
QQ 空间网页版只能翻看近期动态,拿不到完整历史。这个开源项目的做法是绕过网页翻页限制,直接从接口分页取数,并帮你把原始记录整理成人能用的格式:
- 不碰账号密码,只用手机 QQ 扫码授权
- 从两个接口来源合并数据,尽量覆盖互动列表里已经翻不到的早期记录
- 自动下载说说配图,文字表情也能在网页版里正常显示
- 按"说说 / 转发 / 留言 / 好友"分类,输出 5 张 Excel + 1 个 HTML
- 全过程在本机完成,数据不出机器
三分钟把它跑起来
环境要求很简单:Python 3.7 及以上。拿到代码:
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory建议用虚拟环境隔离依赖:
python -m venv myenv # Windows 激活 myenv\Scripts\activate # Linux / macOS 激活 source myenv/bin/activate安装依赖(requirements.txt 里一共 11 个包),国内网络可加镜像源加速:
pip install -r requirements.txt最后一条命令启动:
python main.py有一个容易踩的坑提前说:登录环节用到的 pyzbar(Python 的条码识别库)依赖系统里的 zbar 共享库,pip 装不了它。Linux 执行sudo dnf install -y zbar或sudo apt install libzbar0,macOS 执行brew install zbar,装完再启动程序。
登录与首次使用:只扫码,不碰密码
登录逻辑集中在 util/LoginUtil.py,你不需要理解内部细节,只需要知道流程:
- 程序向 QQ 登录接口要一张二维码,解码后直接以字符图案打印在终端
- 用手机 QQ 扫这个图案即可,账号密码从头到尾不经过程序
- 等待期间终端每 3 秒轮询一次,显示"未失效 / 认证中 / 已失效"
- 认证通过后 cookie 存到本地
resource/user/,下次运行直接读取,无需重复扫码
扫完码你会依次看到:登录成功的 QQ 号与昵称 → 第一条进度条(互动消息列表,每 10 条停 3 秒)→ 第二条进度条(可见未删除说说列表,每页 30 条)。数据量大时整体耗时较长,属于正常现象。
它是怎么工作的
三个机制,各说几句:
① 双来源分页拉取
互动消息列表在 main.py 的主循环里处理,每 10 条一页、页间停 3 秒,控制请求频率;可见未删除说说列表在 util/GetAllMomentsUtil.py 实现,先查总条数算出总页数,再逐页请求合并。第二个来源能捞到互动列表里已经翻不到、但空间里仍可见的早期记录。两份数据都带本地缓存,重跑时已下载的部分不会重复请求。
② 分类与去重
每条记录按发布者和关键词归位:内容含"留言"进留言表,含"转发"进转发表,昵称是你自己的进说说表,其余归"其他";互动中出现的好友单独汇总成好友表。时间字段做了兼容——早期记录有的缺秒数,解析时会按两种格式各试一次。合并前按内容去重,同一条说说不会被计两次。
③ 三格式导出
Excel 用 pandas 写出;说说里的图片逐张下载到pic/子目录,文件名取说说文本前 40 个字符并过滤非法字符、重名自动加时间戳;最后把说说和转发两张表渲染成一个 HTML,QQ 文字表情替换成对应图片标签,浏览器打开即可按时间线浏览。程序还注册了信号处理,中途按 Ctrl+C 退出时,已抓到的数据会先落盘。
导出结果长什么样
全部产出在resource/result/你的QQ号/目录下:
| 文件 | 内容 |
|---|---|
| QQ号_全部列表.xlsx | 抓到的全部记录 |
| QQ号_说说列表.xlsx | 你自己发布的原创说说 |
| QQ号_转发列表.xlsx | 你的转发记录 |
| QQ号_留言列表.xlsx | 你留下的留言 |
| QQ号_其他列表.xlsx | 其他好友的动态 |
| QQ号_好友列表.xlsx | 互动中出现的好友(昵称 / QQ / 空间主页) |
| QQ号_说说网页版.html | 网页版时间线 |
| pic/ | 说说的本地图片 |
内容表统一是四个字段:
| 字段 | 含义 |
|---|---|
| 时间 | 说说或互动发生的时间 |
| 内容 | 全文,开头带发布者昵称 |
| 图片链接 | 图片地址,多张以逗号分隔 |
| 评论 | 评论时间、内容、评论人昵称与 QQ 号 |
怎么确认它正常工作,以及常见问题
三步验证:
- 看结尾统计:终端会打印总消息数、最早一条说说时间、好友数、各列表条数、图片数
- 重点核对"最早一条说说"的时间——你用了多少年空间,它就该回到多少年前
- 打开网页版 HTML,确认时间线、图片、评论渲染正常,再看说说表行数与
pic/图片数量是否对得上
对得上,这份导出就可以放心留用。
常见问题:
| 现象 | 原因 | 处理 |
|---|---|---|
| 启动报"无法找到 zbar 共享库"并退出 | pyzbar 需要系统级 zbar 库,pip 装不了 | 用系统包管理器安装:Linuxsudo dnf install -y zbar或sudo apt install libzbar0,macOSbrew install zbar |
| 终端二维码看不清、扫不出 | 字符图案在部分终端字体下显示不全 | 二维码同时存成了图片(resource/temp/QR.png),打开那张图扫 |
| 导出结果缺某些说说 | 工具只取"可见"范围,仅自己可见或已删除的拉不到 | 属机制边界而非故障;按内容去重,重跑是安全的 |
| 运行很久像卡死 | 每 10 条停 3 秒,总耗时和数据量成正比 | 让它跑完;要中断就 Ctrl+C,已抓数据会先保存 |
| 下次运行又要求扫码 | 登录 cookie 过期 | 重新扫码即可;若频繁出现,检查系统时间是否准确 |
使用边界与合规提醒
两点心里有数:
- 只取本人可见数据:登录、抓取、导出全在本地机器完成,不上传任何第三方服务器。"仅自己可见"和已删除的说说天然不在范围内,别把缺失当成 bug
- 隐私与版权:导出文件里含好友的昵称、QQ 号和评论内容,这些是他人个人信息,不要把文件或 HTML 对外公开;说说文字和图片受平台及原作者版权约束,本工具仅限个人备份与技术研究,不要用于商业用途或大规模抓取
写在最后
第一次跑通后,先核对"最早记录时间"和各表行数是否符合预期,再认真做一次全量导出。之后把resource/result目录定期备份到另一块存储,这份多年积累就真正落袋了。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考