news 2026/9/20 9:26:37

GetQzonehistory完整教程:一键备份QQ空间历史说说

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GetQzonehistory完整教程:一键备份QQ空间历史说说

GetQzonehistory完整教程:一键备份QQ空间历史说说

【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory

GetQzonehistory 是一个免费开源的 Python 工具,用来备份 QQ 空间历史说说。它把账号下所有可见说说的文字、图片、评论抓下来,存成本地 Excel 和网页文件。不需要技术背景,会装 Python、会用手机扫码就能跑。如果你这些年发了不少说说,担心平台改版或账号长期不活跃导致内容丢失,可以用它把数据落到自己的磁盘上。

🚀 GetQzonehistory 安装步骤与首次备份

环境要求先看这张表:

项目要求说明
Python3.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 工作原理:数据怎么流转的

整个流程可以拆成五条线,对照源码看更清楚:

  1. util/LoginUtil.py:负责获取二维码、轮询扫码状态,登录成功后把 cookie 写入resource/user/,后续运行直接复用。
  2. util/RequestUtil.py:封装所有 QQ 空间请求,先用二分查找估算消息列表总条数,再分批拉取页面。
  3. main.py:主入口,逐批解析消息页面 HTML,抽出时间、内容、图片链接、好友信息。
  4. util/GetAllMomentsUtil.py:分页拉取"全部可见未删除说说"接口,一页 30 条,可覆盖 2014 年之前的老说说,原始 JSON 缓存在resource/fetch-all/
  5. 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 9:25:26

显卡驱动卸载神器DDU:从蓝屏到干净重装完全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 9:24:44

Claude Code 粘贴自动发送,TaoToken 接入后 Shift 还管用吗?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 9:23:51

Claude Code 实战:TaoToken 跑通 Python pytest 仓库的失败用例修复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 9:23:20

Jetson边缘AI部署全栈工程实践:从L4T启动到TensorRT推理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 9:23:10

移动端Three.js室内漫游:场景、操控与碰撞

简介:一份基于Three.js的WebGL室内漫游与导航功能源码,面向移动端App、小程序及H5场景开发者。项目使用GLB模型,完整实现了室内第一人称视角漫游、导航路径展示与交互,后续可接入蓝牙定位实现实时室内导航,适合需要快速…

作者头像 李华
网站建设 2026/9/20 9:22:39

Ruffle 扩展教程:3 步让浏览器里的 Flash 白屏页面重新跑起来

Ruffle 扩展教程:3 步让浏览器里的 Flash 白屏页面重新跑起来 【免费下载链接】ruffle A Flash Player emulator written in Rust 项目地址: https://gitcode.com/GitHub_Trending/ru/ruffle 老页面白屏,不装 Flash 插件怎么处理 你以为要翻出当…

作者头像 李华