别再翻页截图了:GetQzonehistory让QQ空间历史说说备份一次搞定

别再翻页截图了:GetQzonehistory让QQ空间历史说说备份一次搞定

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

你有没有想过,自己十几年前发的那条"非主流"说说,如今还能翻到吗?QQ空间的说说列表越拉越长,加载越来越慢,很多早年动态甚至已经悄悄沉底。GetQzonehistory是一款面向普通用户的QQ空间历史说说备份工具,它能通过扫码登录、自动分页抓取、多格式导出的方式,把你账号下所有可见的历史说说、转发、留言和配图完整保存到本地,适合每一位想把青春回忆握在自己手里的QQ老用户。

为什么说QQ空间历史说说备份宜早不宜迟

那些"看不见"的数据边界

先别急着开脚本,问自己一个问题:你现在打开QQ空间,能把最早的说说翻出来吗?

现实是,QQ空间的消息列表并不等于"全部说说"。项目文档里明确提到一个边界:消息列表中没有的内容,工具也拿不到,比如部分仅自己可见的说说。也就是说,数据存在,但入口未必可见。这种"看得见入口、翻不到底"的状态,正是很多人迟迟没备份,最终错过珍贵内容的原因。

更麻烦的是,翻页本身也是体力活。假设你有两三千条说说,手动往下滚动、逐条截图,至少要几个小时;而截图还会把评论、时间戳截得七零八落,照片质量也大打折扣。

手工翻页 vs 脚本导出:一场不对等的较量

把两种方案放在一起看,差距一目了然:

对比维度手动翻页截图GetQzonehistory自动导出
耗时数小时起步,越长越痛苦全程自动,喝杯茶的功夫
完整性容易漏页、漏评论按批次分页抓取,去重合并
图片保存截图压缩,画质损失原链接批量下载到本地
评论数据难以结构化留存时间、内容、昵称、QQ号成组导出
结果形式一堆截图碎片Excel表格 + HTML网页版

工具的原理并不玄乎:它模拟浏览器登录QQ空间后,先通过"二分法"探测消息总量,再以每批10条的速度分页拉取历史消息列表,最后把文本、图片链接、评论统一清洗成结构化数据。整个过程在你的电脑上完成,数据不经过任何第三方服务器。

十分钟跑通首次QQ空间历史说说导出

环境准备:虚拟环境与依赖一键安装

先确保电脑上装有Python 3.6 及以上版本,然后打开终端,跟着下面的步骤走:

# 克隆项目到本地 git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory # 创建并激活虚拟环境(推荐,避免污染系统Python) python -m venv myenv # Windows 激活: # .\myenv\Scripts\activate # macOS / Linux 激活: source myenv/bin/activate # 安装依赖 pip install -r requirements.txt # 启动主程序 python main.py

依赖清单里包括requests(网络请求)、beautifulsoup4(解析HTML)、pandasopenpyxl(生成Excel)、qrcode(生成登录二维码)等。如果下载速度慢,可以给 pip 加上国内镜像源,例如pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt

扫码登录:不输密码也能安全进空间

程序启动后会向 QQ 官方登录接口请求一张二维码,并把它打印在终端里,还会生成一张resource/temp/QR.png。你只需要用手机QQ扫一扫,在手机上确认登录即可——全程不需要输入密码。

登录成功后,cookie 会被缓存到resource/user/目录。下次再运行,程序会列出"已登录用户列表",直接输入序号就能继续,省去重复扫码的麻烦。这也是它比某些需要手动填 cookie 的工具更友好的地方。

完整导出流程:从运行到验收

  1. 运行python main.py,扫码或选择已缓存用户登录;
  2. 程序自动探测消息总数,并显示带进度条的抓取过程(每批10条);
  3. 抓取完成后,自动下载所有可见说说中的配图;
  4. resource/result/你的QQ号/目录下生成全部成果,并自动弹出文件夹。

整个过程无人工干预,跑完你就能看到导出的数据文件。下图是程序从登录到导出成果的整体流程,以及最终的文件组织方式:

拆解导出成果与进阶玩法

五大分类文件,一次看懂

resource/result/你的QQ号/下,你会得到多张以_列表.xlsx结尾的表格,每一张都对应一类内容:

文件内容典型字段
全部列表抓到的所有消息汇总时间、内容、图片链接、评论
说说列表你本人发布的原创说说时间、内容、图片链接、评论
转发列表你转发过的内容时间、内容、图片链接、评论
留言列表空间里的留言互动时间、内容、图片链接
好友列表互动中出现的好友信息昵称、QQ、空间主页
其他列表无法归类的其余内容时间、内容、图片链接

其中"评论"字段是结构化存储的,每组评论包含评论时间、评论内容、评论人昵称、评论人QQ号,方便你用数据分析工具做二次加工。比如用 pandas 统计每年的说说发布量:

import pandas as pd df = pd.read_excel('你的QQ号_说说列表.xlsx') df['发布时间'] = pd.to_datetime(df['时间']) yearly = df['发布时间'].dt.year.value_counts().sort_index() print(yearly) # 看看哪一年你最爱发说说

HTML网页版与图片本地化

除了表格,程序还会生成一份你的QQ号_说说网页版.html,按时间倒序排列所有说说,还原头像、正文、配图、评论区的阅读体验,离线双击即可浏览,非常适合当"回忆相册"用。

配图会统一下载到pic/子目录,文件名直接取自说说正文的关键词,遇到重名会自动追加时间戳。这意味着即使将来QQ空间图片链接失效,你的照片依然静静躺在硬盘里。

补全2014年之前的老说说

主程序走的是"消息列表"通道,而fetch_all_message.py提供了另一条更完整的管道:它调用 QQ 空间说说列表接口,逐页拉取所有可见且未删除的说说,包括2014年之前的老动态,还会顺手把高清原图也下载下来,最终生成一份所有可见说说.md的 Markdown 文档。

python fetch_all_message.py

这条管道的中间结果会缓存在resource/fetch-all/下,以JSON形式保存,方便断点续跑。建议先跑主程序拿全量分类表,再用它补齐早期内容,两条腿走路最稳妥。

中断续传与参数微调

抓取过程中如果你按Ctrl+C,程序会捕获中断信号,先把已抓到的数据保存下来再退出,不会让你白跑一趟。想给QQ服务器留点余地,可以调整抓取间隔:

# 在 main.py 中找到类似这一行 time.sleep(3) # 每读取10条后休息3秒 # 可改成更保守的间隔 time.sleep(5) # 休息5秒,更不易触发风控

此外,目录配置集中在resource/config/config.ini,你可以自定义临时目录、用户目录和结果目录的存放位置。

避坑指南与最佳实践

常见问题排查

现象可能原因解决办法
终端二维码显示乱码部分终端字体不支持直接用resource/temp/QR.png扫码
Linux下报 pyzbar 导入失败缺少 zbar 共享库安装系统包,如sudo dnf install -y zbar(Fedora系)
只能导出一部分说说消息列表本身不含某些内容补充运行fetch_all_message.py走另一条接口
图片下载失败链接失效或网络波动稍后重跑,或从Excel中的图片链接手动补下
提示登录失败cookie过期选择重新登录,输入0重新扫码

隐私与安全建议

  • 本工具数据全程本地处理,不向任何第三方上传内容,但请只备份你自己的账号;
  • 备份完成后,如需清理登录痕迹,可删除resource/user/目录下的缓存文件;
  • 重要备份建议同时复制到移动硬盘或加密云盘,遵循"多地备份"原则;
  • 工具仅供学习与技术研究使用,请遵守相关法律法规,尊重平台规则。

现在就把回忆搬回自己硬盘

当平台规则、账号状态、链接失效这些变量都不受你控制时,本地备份就是最可靠的保险。GetQzonehistory 用一套扫码登录 + 分页抓取 + 多格式导出的闭环,把这件事的复杂度降到了"敲两行命令"的程度。

马上动手吧:克隆项目、装好依赖、扫码登录,十分钟后你就能拿到一份属于自己的"青春档案"。

延伸学习资源:

  • 配置说明与目录路径:util/ConfigUtil.py
  • 扫码登录实现:util/LoginUtil.py
  • 全量说说抓取:util/GetAllMomentsUtil.py
  • 请求与解析核心:util/RequestUtil.py

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

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考