GetQzonehistory:5分钟把QQ空间历史说说、评论和配图导出到本地
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
QQ空间没有官方导出入口,互动消息列表只保留部分记录——几年攒下的说说过往,某天刷新可能只剩最近几十条。GetQzonehistory 是个纯本地 Python 工具:扫码登录不碰密码,双通道抓取历史说说,全程约 5 分钟跑通,之后全自动。
一轮跑完,你硬盘上多了哪些文件
先说终点。结果全部落在resource/result/你的QQ号/,每个 QQ 号一个独立目录,不经过任何第三方服务器:
| 文件 | 里面是什么 |
|---|---|
| QQ号_全部列表.xlsx | 全部互动消息的时间线:时间、内容、图片链接、评论 |
| QQ号_说说列表.xlsx | 你自己发布的原创说说 |
| QQ号_转发列表.xlsx | 转发过的内容 |
| QQ号_留言列表.xlsx | 收到的留言 |
| QQ号_其他列表.xlsx | 未归入以上分类的其余内容 |
| QQ号_好友列表.xlsx | 互动过好友的昵称、QQ、空间主页 |
| QQ号_说说网页版.html | 还原空间样式的可视化页面,评论和表情照样渲染 |
| pic/ 目录 | 说说配图,按内容前 40 字自动命名归档 |
能力边界:能拿回什么,拿不回什么
把话说死:可恢复范围是历史消息列表和未删除的可见说说两块,后者单独跑还能翻到 2014 年之前。拿不回的是仅自己可见、又不在消息列表里的极少数记录——不公开也不在互动流里,没有合法途径还原。
一个反直觉点:消息列表是平台替你维护的流水,它保留多少条,你的可恢复上限就是多少条。备份拖得越久,上限本身越低。
| 维度 | 手动截图 / 复制 | GetQzonehistory |
|---|---|---|
| 覆盖范围 | 翻到哪算哪 | 消息列表 + 可见说说双通道 |
| 图片 | 截图压缩,画质打折 | 自动下载,网页版还替换成高清链接 |
| 评论互动 | 基本丢失 | 随说说一并保留并渲染 |
| 登录 | 输密码或手动维护会话 | 官方扫码,全程不碰密码 |
克隆仓库,用虚拟环境圈出一块独立地盘
依赖和其他项目混装容易打架,venv 一步隔开:
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,两条别混用。
✅ 完成标志:命令行前缀出现(myenv)。
一条命令装齐依赖,Linux 记得补 zbar
依赖各司其职:requests发请求,beautifulsoup4解析网页,pandas出 Excel 表格,qrcode+pyzbar生成和识别登录二维码,tqdm画进度条。
pip install -r requirements.txt✅ 完成标志:终端输出Successfully installed ...。
💡 卡在
pyzbar导入报错,是系统缺 zbar 图像识别库。RPM 系发行版执行sudo dnf install -y zbar,macOS 有 Homebrew 时程序会引导你安装,装完重跑即可。
扫码登录:手机 QQ 扫一下,全程免密码
python main.py终端会打印一个字符拼成的二维码,手机 QQ 扫一下、点确认即完成,没有任何输密码的环节。凭证以 cookie 形式存进resource/user/,下次运行会列出已登录账号,输入序号直接复用;输入 0 则重新扫码。逻辑细节可查 登录逻辑源码。
✅ 完成标志:看到用户<QQ号>,<昵称>登录成功。
⚠️ cookie 是张临时门禁卡,会过期。重复运行时若账号显示"已失效"就重新扫码;别把密码交给任何工具。
💡 显示"二维码已失效"就重跑
python main.py再生成一次;手机和电脑之间挂了代理就先放行登录请求。
双通道抓取:进度条跑多久才到头
登录成功后程序自己干活:先探测历史消息总数,再按每批 10 条分页抓取,批与批之间停顿 3 秒——这是刻意的防风控节奏,不是卡死,别急着关。1000 条消息大约要多花 5 分钟在这个停顿上。随后第二通道抓可见说说,抓完做归类、下图片、生成网页版。
✅ 完成标志:终端打印各清单条数(最早一条说说的时间、好友数、图片数),文件管理器自动弹出结果文件夹。
⚠️ 中途想停直接 Ctrl+C:程序注册了信号处理,会先保存已有数据再退出。重跑时已抓内容按内容去重后再合并,已有 Excel 不丢。
💡 无图形界面的 Linux 服务器没有"自动打开文件夹"这一步,终端会提示手动打开,属正常现象。
结果核对:打开你的QQ号结果文件夹
进resource/result/你的QQ号/,数一下:6 个 xlsx、1 个 html、1 个 pic 目录,一个都不能少。
- 用浏览器打开
QQ号_说说网页版.html,检查头像、配图、评论是否渲染正常 - 打开
QQ号_全部列表.xlsx,行数应和终端打印的"共有 X 条消息"一致 - 抽查 pic/ 里几张图,文件名是内容前 40 字,同内容重名会追加时间戳
排错速查表:按现象先做什么
| 现象 | 先做什么 |
|---|---|
| 二维码扫了没反应 | 多半过期了,重跑python main.py;检查代理是否拦截登录请求 |
| 进度到一半断了 | 已有数据自动保存,重跑python main.py去重合并即可 |
| pyzbar 导入报错 | 先装系统 zbar 库(sudo dnf install -y zbar),再重跑 |
| Excel 打不开 | 先关掉正占用文件的 WPS / Office 窗口 |
| 图片下载慢或个别失败 | 批间 3 秒是防封设计不是故障;失败的图重跑一次即补 |
进阶用法:补齐 2014 年之前的老记录和二次利用
单独跑全量脚本。全量说说脚本 是第二个入口,每页 30 条抓取所有未删除的可见说说(含 2014 年之前),输出带图、带评论的所有可见说说.md到resource/fetch-all/:
python fetch_all_message.py数据到手后照做三件事。打开全部列表.xlsx按年份筛,拼一条年度时间线;用好友列表.xlsx做数据透视表,看每个好友的互动频次和最近互动时间;把网页版 HTML 转存 PDF 上网盘,给回忆加一层双介质保险。
留好余量再跑。每 1000 条说说大约 100MB 磁盘(图片是大头),跑前瞄一眼剩余容量;resource/result整目录纳入常规备份,它是唯一成果所在地。
行动清单:5 步走完整个备份
- 克隆仓库,建并激活虚拟环境(前缀出现
(myenv)) - 安装依赖(看到
Successfully installed,必要时先装 zbar) - 运行
python main.py,手机扫码登录 - 等进度条走完,核对
resource/result/你的QQ号/下 6 个表格 + 网页 + pic 目录 - 需要更早的记录就补跑
python fetch_all_message.py,并把整个结果目录复制到至少两个存储位置
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考