GetQzonehistory完整教程:一键备份QQ空间历史说说
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
GetQzonehistory 是一个免费开源的 Python 工具,用来备份 QQ 空间历史说说。它把账号下所有可见说说的文字、图片、评论抓下来,存成本地 Excel 和网页文件。不需要技术背景,会装 Python、会用手机扫码就能跑。如果你这些年发了不少说说,担心平台改版或账号长期不活跃导致内容丢失,可以用它把数据落到自己的磁盘上。
🚀 GetQzonehistory 安装步骤与首次备份
环境要求先看这张表:
| 项目 | 要求 | 说明 |
|---|---|---|
| Python | 3.8 及以上 | Windows、macOS、Linux 均可 |
| zbar 系统库 | 仅 Linux 需要 | 用来解析登录二维码,装法见排错一节 |
| 网络 | 可访问 qq.com | 全程调用 QQ 空间网页接口 |
克隆代码并进入目录:
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory首次运行前,先建好resource/config/config.ini,内容见下文配置一节。然后建虚拟环境、装依赖、跑起来:
python -m venv myenv # Windows 激活:.\myenv\Scripts\activate # macOS/Linux 激活:source myenv/bin/activate pip install -r requirements.txt python main.py第一次运行,终端会打印一张 ASCII 二维码,用手机 QQ 的扫码登录扫它即可。确认登录后,程序自动保存登录状态并开始抓数据。抓取按每批 10 条推进,批间有 3 秒停顿,说说多时耗时不短,中途按 Ctrl+C 也会把已抓的数据先存下来,不会白跑。
📦 备份产出文件:运行后你拿到什么
跑完后,全部结果落在resource/result/你的QQ号/目录下:
| 文件 | 内容 |
|---|---|
QQ号_全部列表.xlsx | 消息列表里的全部记录(时间、内容、图片链接、评论) |
QQ号_说说列表.xlsx | 你自己发布的说说 |
QQ号_转发列表.xlsx | 你转发过的内容 |
QQ号_留言列表.xlsx | 你给别人空间写的留言 |
QQ号_其他列表.xlsx | 涉及好友的互动记录 |
QQ号_好友列表.xlsx | 好友昵称、QQ 号、空间主页 |
QQ号_说说网页版.html | 时间线样式网页,浏览器直接打开 |
pic/文件夹 | 说说里的全部图片,逐张下载为本地 jpg |
网页版把头像、正文、图片、评论区按时间线排好,点击图片可打开原图;Excel 里按时间列筛选就能快速定位某一年。需要说明的是,消息列表里查不到的内容(比如"仅自己可见"的说说)拿不到,这是接口限制,不是程序漏抓。
🔍 GetQzonehistory 工作原理:数据怎么流转的
整个流程可以拆成五条线,对照源码看更清楚:
- util/LoginUtil.py:负责获取二维码、轮询扫码状态,登录成功后把 cookie 写入
resource/user/,后续运行直接复用。 - util/RequestUtil.py:封装所有 QQ 空间请求,先用二分查找估算消息列表总条数,再分批拉取页面。
- main.py:主入口,逐批解析消息页面 HTML,抽出时间、内容、图片链接、好友信息。
- util/GetAllMomentsUtil.py:分页拉取"全部可见未删除说说"接口,一页 30 条,可覆盖 2014 年之前的老说说,原始 JSON 缓存在
resource/fetch-all/。 - util/ToolsUtil.py 加 util/ConfigUtil.py:负责 HTML 解码、时间格式化、QQ 表情转图片、目录配置。
数据流向一句话概括:扫码登录 → 抓消息列表和说说列表 → 合并去重 → 由 main.py 的save_data()拆成多份 Excel、下载图片、渲染网页版。
⚙️ config.ini 配置方法:改路径只需改这三行
配置文件resource/config/config.ini不在仓库里,克隆后需要手动创建,由 util/ConfigUtil.py 读取。内容很短:
[File] temp = resource/temp/ user = resource/user/ result = resource/result/三个字段含义:temp是缓存目录,存二维码等临时文件,随时可删;user存登录状态,一个 QQ 号一个文件;result是备份结果输出目录。建议把result指到磁盘空间充足且好找的位置,改前确认目标目录可写。登录状态保留后,再次运行程序会让你从已登录账号列表里选一个,输入 0 则重新扫码。
⏰ 进阶用法:定时自动备份与 Markdown 导出
定时备份最值得先做。只要resource/user/里的登录状态没过期,定时任务可以全自动跑。Linux/macOS 在 crontab 里加一行即可:
0 22 * * 0 cd /项目路径/GetQzonehistory && ./myenv/bin/python main.py意思是每周日 22 点执行一次;Windows 用任务计划程序指向同样的解释器和脚本即可。
另一个入口是 fetch_all_message.py:它抓同一批可见说说,但输出成resource/fetch-all/所有可见说说.md,图片存在同目录并在 Markdown 里本地引用,方便同步进笔记软件或版本库。它带独立缓存,缓存还在时重跑不会重复请求,只重新导出。
🛠️ 常见问题排查:三个高频坑
现象:Linux 首次运行提示"无法找到 zbar 共享库"。原因:pyzbar 依赖系统级 zbar 库来解析二维码,pip 装不上这部分。 解决:用系统包管理器安装,Debian/Ubuntu 执行sudo apt install zbar-tools,Fedora 执行sudo dnf install zbar,装完重跑即可。macOS 上程序检测到 Homebrew 后会引导你自动安装。
现象:二维码过期、登录失败,或登录后长时间无数据。原因:二维码有效期很短;或者resource/user/里的旧 cookie 已失效。 解决:删掉resource/user/下的文件后重新运行扫码。如果终端二维码显示乱码,直接打开resource/temp/QR.png,扫这张图也行。
现象:进度中出现"获取消息失败",或最终条数偏少。原因:网络抖动导致某批请求超时,或该批返回页里没有有效条目。 解决:程序会自动跳过失败批次继续跑,不用手动干预。结束后如果总量明显不对,隔一段时间重跑一次,程序会合并已有缓存里的数据。
🔒 隐私、存储与使用边界
- 所有数据只存在你自己的电脑上,说说、图片、网页全部落在
resource/result/,不经过任何第三方服务器。 resource/user/QQ号这个文件就是登录凭证,等同于能进你空间的钥匙,别发给别人,也别提交进任何代码仓库。- 只备份你自己登录的账号空间,不要拿它批量抓取别人的数据,那是越过隐私红线的用法。
- README.MD 的免责声明写得很明确:工具仅供学习和技术研究,不得用于商业或非法行为。
GetQzonehistory 做的事很单一:扫码一次,把 QQ 空间里的历史说说变成本地 Excel、网页和图片,从此数据归你自己保管。下一步就挑个晚上把python main.py跑一遍,先把老说说的第一份归档拿在手上。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考