GetQzonehistory:一次运行导出你的QQ空间历史说说备份
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
GetQzonehistory 是一款免费开源的 QQ 空间历史说说导出工具。它通过模拟扫码登录,读取空间互动消息列表和可见说说,产出多份 Excel 表格、一个网页版页面和图片文件夹,全部保存在本机。
💡 典型使用场景:历史说说备份适合做什么
用空间多年、准备停用 QQ 号或担心账号异常,想先做一次完整留存的人:运行一次 GetQzonehistory,得到按时间排序的全量互动记录(Excel 与网页版),以及全部说说图片,存入自己控制的存储介质。
想回顾或整理旧内容的人,比如按年份编一本年度合集、整理一份个人时间线:用"全部列表"表格按时间列筛选,网页版则按空间原有版式渲染说说、头像、评论与高清图,可直接打开浏览。
想自己动手写空间数据处理工具的开发人员:项目按职责拆分成独立模块,基于登录与请求两个模块,可以把导出环节换成自己的报表格式。
🛠️ 从准备到完整运行:安装命令与产出文件说明
跑之前需要 Python 3 环境。二维码解码依赖 zbar 共享库,Linux 需先用包管理器安装(如sudo dnf install zbar),macOS 运行时程序会交互提示通过 Homebrew 安装。项目的 release 页另提供打包好的单文件,无 Python 环境也可直接执行。
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory python -m venv myenv pip install -r requirements.txt随后激活虚拟环境(Windows 用.\myenv\Scripts\activate,macOS/Linux 用source myenv/bin/activate)。
跑一次只需执行:
python main.py终端会显示登录二维码,全程唯一需要你动手的就是用手机 QQ 扫码并确认;若之前已登录过账号,从列表中选择即可免扫码。登录后其余流程自动完成:先估算消息列表总量,再分批拉取,每批之间有固定停顿,数据量大时耗时较长属正常现象。
跑完之后,程序会自动打开结果目录,导出文件位于resource/result/{QQ号}/:
| 文件 | 用途 |
|---|---|
{QQ号}_全部列表.xlsx | 两个数据源合并后的完整记录,含时间、内容、图片链接、评论列 |
{QQ号}_说说列表.xlsx | 本人原创说说,按内容类型拆分 |
{QQ号}_转发列表.xlsx | 本人做出的转发记录 |
{QQ号}_留言列表.xlsx | 本人在他人说说下留下的评论 |
{QQ号}_其他列表.xlsx | 来自他人的互动内容(他人说说、转发等) |
{QQ号}_好友列表.xlsx | 消息列表中出现的昵称、QQ 号、空间主页 |
{QQ号}_说说网页版.html | 按空间版式渲染说说与转发,QQ 表情还原为图片 |
pic/ | 说说中的全部图片,本地下载并按内容命名 |
fetch_all_message.py是独立脚本,运行后可把所有可见未删除说说整理成带转发原文与评论的 Markdown 文件,缓存于resource/fetch-all/。
🔍 它是怎么拿到全量数据的:双数据源与去重逻辑
- 数据源有两个。主数据来自空间互动消息列表接口,每次 10 条分批拉取,启动前用二分法估算消息总量,避免逐段试探;辅助来源是空间可见说说接口,每页 30 条,响应用 chardet 自动探测编码,防止中文乱码。
- 合并靠内容去重。以说说文本比对,只有消息列表中不存在的可见说说才追加进结果,两个来源不重复;评论随可见说说一并解析,好友信息在解析消息列表时顺带收集。
- 中断与缓存兜底。程序收到中断信号(如 Ctrl+C)时会立即把内存中已抓到的数据写入 Excel,不丢进度;可见说说全量数据还会以 JSON 缓存在
resource/fetch-all/,下次运行直接复用、不再重复抓取。
若要改导出列或网页版样式,直接修改main.py的save_data()与 工具模块 中的 HTML 模板即可,抓取逻辑无需改动。
🗺️ 代码地图:目录结构与二次开发入口
GetQzonehistory/ ├── resource/ # 配置、缓存、登录态、导出结果(自动创建) ├── util/ # 配置、可见说说、登录、请求、工具五个模块 ├── main.py # 主入口:合并数据并导出 ├── fetch_all_message.py # 独立脚本:可见说说导出 Markdown └── requirements.txt # 依赖列表- 登录模块:生成二维码、轮询扫码状态、计算请求参数,登录态处理方式要调整从这里入手。
- 请求模块:二分估算消息总量、分页拉取互动消息,是调整抓取节奏的唯一位置。
- 可见说说模块:分页抓取、解析图片与评论、落盘 JSON 缓存。
main.py承载主流程与导出列定义;fetch_all_message.py作为独立入口快速产出 Markdown 版本。
⚖️ 能力边界与常见疑问:导出范围与隐私
先说清楚边界:
- 只能获取出现在空间互动消息列表里的说说;手动删除或"仅自己可见"的内容不在列表中,无法拿到。
- 需要 QQ 账号处于正常状态,每次运行扫码登录(或复用本地登录态)。
- 抓取节奏固定、批次间有停顿,耗时取决于数据总量,建议在稳定网络下运行。
高频疑问:
需要输密码吗,会泄露吗?不需要。全程为手机 QQ 扫码登录,程序不接触密码;得到的 Cookie 只写入本机resource/user/目录。
数据存在哪?全部在本机:结果在resource/result/{QQ号}/,缓存在resource/fetch-all/,程序不会把你抓取的数据上传到任何服务器。
支持哪些系统?Windows、macOS、Linux 均可运行;需安装 zbar 库(macOS 由程序交互引导),完成后三个平台都能自动打开结果目录。
维护建议压缩成四条:
- 每次导出前保留旧结果,新结果核对完整后再覆盖归档。
- 导出结果至少放两个位置(如云盘与移动硬盘)。
- 导出内容含好友昵称、QQ 号与互动信息,妥善保管,勿公开发布。
resource/user/目录内含登录态,不要外传。
如果你的目标只是给自己存档,把项目跑通一次、把导出结果收好就足够了;列结构、网页样式与整理方式都可以按上面的代码地图自行调整。
免责声明:本工具仅供学习和技术研究使用,使用时请遵守相关法律法规,尊重 QQ 平台及第三方的隐私与版权。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考