GetQzonehistory 快速指南:5 分钟把 QQ 空间历史说说、评论和配图备份到本地
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
QQ 空间没有官方数据导出入口,互动消息列表也只保留部分历史,几年前发的说说,打开页面可能只剩最近几十条。GetQzonehistory 是一个纯 Python 的本地备份工具:扫码登录后自动抓取历史说说的消息列表和未删除的可见说说,整理成表格和网页版,全程约 5 分钟跑完。手动截图存档要逐页翻、画质打折、评论基本丢失,几小时起步还容易中途放弃。
能力边界:能导出哪些历史说说,拿不回哪些
备份覆盖两个范围:一是历史互动消息列表,即平台目前保留的全部记录;二是未删除的可见说说,可以翻到 2014 年之前。
绝对拿不回的是两类:已经删除的说说,以及设置为仅自己可见、且没有出现在消息列表里的极少数记录。后者既不公开也不在互动流里,当前没有合法途径还原。
一个反直觉的点:消息列表是平台替你维护的流水,它保留多少条,你的"可恢复上限"就是多少条——备份拖得越久,上限本身越低,今天的全量可能是明年的子集。
登录走官方扫码,全程不输入密码。凭证以 cookie 形式存在本地resource/user/目录,重跑时会列出已登录账号,输入序号即可复用。
数据流向是干净的:请求只发往 QQ 空间官方域名,所有结果只写入本地硬盘,没有任何第三方服务器中转。
⚠️ cookie 是会过期的"临时门禁卡"。重跑时如果显示已失效,重新扫码即可,别把密码交给任何工具。
准备:克隆仓库、建虚拟环境并安装依赖
给工具圈一块独立地盘,避免它的依赖和你机器上其他项目互相打架:
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 -r requirements.txtrequirements.txt里 11 个依赖各司其职:requests发网络请求;beautifulsoup4解析消息列表的网页结构;pandas把数据整理成表格;openpyxl负责 .xlsx 文件的写入引擎;pyarrow提供文件写入的引擎支持;tqdm画进度条;qrcode生成登录二维码;pyzbar识别二维码内容,依赖系统 zbar 库;Pillow处理图片缩放;fake-useragent模拟浏览器身份;chardet自动检测响应编码。
💡 排错:启动时卡在 zbar 相关报错,是系统缺图像识别库——RPM 系 Linux 执行
sudo dnf install -y zbar,macOS 会引导你用 Homebrew 安装,装完重跑即可。
登录:终端出现二维码,手机 QQ 扫码
python main.py终端打印一个用字符拼成的二维码,掏手机 QQ 扫一下、点确认,授权即完成,全程没有输入密码的环节。resource/user/下已有账号时,程序直接列出清单,输入序号复用,输入 0 重新扫码。
✅ 完成标志:终端打印用户<QQ号>,<昵称>登录成功。
💡 排错:提示"二维码已失效"就重跑
python main.py再生成一次;手机和电脑之间挂了代理的话,先放行登录请求再扫。登录流程的完整实现见登录逻辑。
运行与幕后机制:双通道抓取,批间停顿 3 秒
登录后程序自己干活,两条线并行推进:
第一条线抓历史消息列表。先用二分法探测消息总数(每次请求查 100 条、请求间停顿 5 秒),再按每批 10 条分页抓取,批与批之间固定停顿 3 秒——这是刻意的防风控节奏,别急着关。
第二条线抓可见说说,一页 30 条、页间停顿 0.02 秒,抓完与消息列表按内容去重,重复的可见说说不会重复计入。图片链接会顺手替换成高清版本再下载。
中断不丢数据:程序注册了信号处理,Ctrl+C 会先把已有数据完整保存再退出,重跑时新抓到的内容去重后合并。仓库里还有fetch_all_message.py入口,只输出 Markdown 版本,落在resource/fetch-all/所有可见说说.md。
完整请求参数与间隔都能翻 消息抓取模块 的源码,不用猜。
✅ 完成标志:终端打印各清单条数(最早一条说说的时间、好友数、图片数),Windows / macOS 会自动弹出结果文件夹;无图形界面的 Linux 会提示"未找到可用的打开命令,请手动打开文件",属正常现象。
查看结果:6 张表格、1 个网页和 1 个图片库
全部产物落在resource/result/QQ号/目录,每个 QQ 号一个独立目录,平铺存放,整个目录拷走即可迁移:
| 文件 | 内容 |
|---|---|
| QQ号_全部列表.xlsx | 全部互动消息的完整时间线,时间/内容/图片链接/评论 4 列 |
| QQ号_说说列表.xlsx | 你发布的原创说说 |
| QQ号_转发列表.xlsx | 你转发过的内容 |
| QQ号_留言列表.xlsx | 你收到的留言记录 |
| QQ号_其他列表.xlsx | 未归入以上分类的其余内容 |
| QQ号_好友列表.xlsx | 互动过好友的昵称、QQ 号、空间主页 |
| QQ号_说说网页版.html | 还原空间样式的可视化页面,评论照样渲染 |
| pic/ 目录 | 说说配图,按内容自动命名归档 |
快速排错:对照现象查对应行
| 现象 | 先做什么 |
|---|---|
| 启动报 zbar 缺失 | RPM 系 Linux 执行sudo dnf install -y zbar,macOS 按提示装 Homebrew 依赖,再重跑 |
| 二维码扫了没反应 | 重跑python main.py重新生成;检查代理是否拦截登录请求 |
| 进度条走到一半断了 | 已有数据已自动保存,重跑python main.py去重合并,不用从头抓 |
| 图片下载慢或个别失败 | 批间 3 秒停顿是防风控不是卡死,失败的重跑一次即补 |
| Excel 打不开 | 先关掉正占用文件的 WPS / Office 窗口,仍不行用 pandas 读取 |
行动清单:5 步完成备份
- 克隆仓库并建、激活虚拟环境,终端前缀出现
(myenv) - 安装依赖,终端输出
Successfully installed - 运行
python main.py,手机扫码,终端出现"登录成功"字样 - 等两条进度条走完,确认
resource/result/QQ号/下有 6 张表格、网页版和 pic/ 目录 - 把整个
resource/result目录复制到至少 2 个不同存储位置
所有数据只存在你的本地硬盘,程序不做任何云端中转——但"只在你手里"也意味着责任全在你手里,拷一份再安心。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考