☰
GetQzonehistory 完整指南:免费导出QQ空间历史说说为Excel与网页
2026/10/16 6:04:35 网站建设 项目流程

GetQzonehistory 完整指南:免费导出QQ空间历史说说为Excel与网页

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

QQ空间的动态页翻到某个位置就到底了,更早的说说在网页上已经找不到。GetQzonehistory 是一款开源 Python 工具,通过扫码登录你的QQ空间,从历史消息列表里逐条抓取QQ空间历史说说、转发和留言,连同图片一起存成本地 Excel 和还原版式的网页,让你不用翻页就能把多年记录完整留档。

为什么你需要导出QQ空间历史说说

网页端的历史消息界面只展示近期内容,往前的记录无法继续翻页。但QQ空间后台的消息接口其实还保留着更早的数据——这就是 GetQzonehistory 的立足点:程序模拟登录QQ空间后(见 util/LoginUtil.py),按批次向历史消息接口(util/RequestUtil.py)要数据,把界面上看不到的部分一条条捞出来。

它替你做的四件事:

  • 走QQ空间官方扫码流程,登录态只缓存在本地,不经过第三方服务器;
  • 先抓历史消息列表,再补抓当前可见的未删除说说,两个来源合并去重;
  • 自动分类生成说说、转发、留言、好友、其他共五张 Excel 表,外加一个网页版;
  • 中途按 Ctrl+C 退出也会先把已抓数据写盘,不白跑。

先看你拿到什么:QQ空间历史说说导出结果文件清单

全部产物在resource/result/你的QQ号/目录下,文件结构如下:

文件内容字段
你的QQ号_全部列表.xlsx两个来源合并后的完整记录时间、内容、图片链接、评论
你的QQ号_说说列表.xlsx你自己发布的说说时间、内容、图片链接、评论
你的QQ号_转发列表.xlsx你转发的内容时间、内容、图片链接、评论
你的QQ号_留言列表.xlsx好友留给你的留言时间、内容、图片链接
你的QQ号_其他列表.xlsx通知等其他消息时间、内容、图片链接
你的QQ号_好友列表.xlsx消息中出现过的所有好友昵称、QQ、空间主页
你的QQ号_说说网页版.html还原QQ空间版式的网页,图片自动替换为高清链接头像、时间、正文、评论区
pic/全部说说图片,按内容命名,重名自动加时间戳——

跑完后终端还会打印一份统计:消息总数、最早一条说说的发布时间、各分类条数、下载图片张数,并自动打开结果目录。

安装依赖并运行 GetQzonehistory:导出QQ空间历史说说的完整步骤

环境准备

本机装好 Python 后,克隆项目、建虚拟环境、装依赖:

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 -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt

依赖清单很短,见 requirements.txt:requests发请求、beautifulsoup4解析页面、pandas+openpyxl写 Excel、qrcode+pyzbar生成和识别二维码、Pillow处理二维码图片。

扫码登录,开始抓取

python main.py

入口是 main.py。首次运行会在终端打印一个 ASCII 二维码,用手机QQ扫它,看到登录成功后进入抓取阶段。登录凭证按QQ号缓存在resource/user/下,再次运行时程序会列出已登录账号,输入序号直接复用,输入 0 则重新扫码。

抓取期间进度条以"10条"为单位推进,批次之间休息 3 秒。消息量大的话整体需要几十分钟,中途想停直接按 Ctrl+C,已抓部分会自动保存。

确认结果

结束时打开resource/result/你的QQ号/,先翻那个 HTML 网页版——它按时间倒序排列,从最新一条一路翻到最早一条,图片点开即是高清。

数据链路解析:历史消息列表与可见说说如何合并去重

整条链路分四步,每步都能对上一个具体文件:

  1. 登录:util/LoginUtil.py 请求QQ空间登录接口取二维码,轮询扫码状态,成功后拿到 cookies 并落盘。
  2. 定位总量:util/RequestUtil.py 里的get_message_count()用二分法探出消息列表总条数,进度条会先快速走完这一步。
  3. 逐批抓取:main.py 主循环每次取 10 条,用 BeautifulSoup 解析每条消息的发布时间、正文、图片,顺手把消息里的好友昵称、QQ、主页链接收进好友表。
  4. 补源合并:util/GetAllMomentsUtil.py 按 30 条一页拉取你当前可见的所有未删除说说(含更早年份),与消息列表比对,重复内容丢弃后并入总表,再统一分类、下载图片、生成 Excel 与 HTML。

两个来源拼在一起,能覆盖"界面翻不到、但接口里还在"的记录;两者都查不到的拿不到,这是数据源决定的上限。

适合谁用:QQ空间历史说说备份的三类典型场景

  • 毕业、换号前的数字归档:把十年动态存成 Excel 加网页,做纪念册、日后翻查都有底。
  • 写作与研究的时间线整理:直接对说说列表.xlsx按时间列排序筛选,比在网页里一页页翻快得多。
  • 定期备份:说说是持续增长的,隔几个月重跑一次即可补充新增记录;程序支持多账号缓存,给家人各导一份也方便。

另外,项目的 release 页面提供了打包好的单文件版本,不想搭环境可以直接执行;README 里还提到 B站 有配套视频教程。

常见报错排查:zbar 缺失、登录失败、图片下载不全

启动时报"无法找到 zbar 共享库"二维码识别依赖缺失。Linux(RPM 系)执行sudo dnf install -y zbar;macOS 按提示选y走 Homebrew 自动安装,或手动brew install zbar。

扫码后迟迟不登录或抓不到数据先确认手机QQ能正常打开QQ空间网页版;再重跑程序,登录时输入 0 重新扫码。cookies 过期就别硬用旧缓存。

导出数据比记忆里少正常现象:主来源是历史消息列表,从未进入消息列表的内容(例如仅自己可见的早期说说)拿不到;可见说说会作为补充并入,两者并集就是程序能拿到的全部。

个别图片没下载老图片链接随时间失效,程序遇到非 200 响应会跳过继续,不阻塞整体流程。

Windows 终端乱码先在命令行执行chcp 65001切到 UTF-8 再启动程序。

跑得太久,是卡住了吗每批请求带 5 秒连接、10 秒读取的超时,加上批次间休息,耗时长但一直在动。没卡,在跑。

进阶用法:多账号切换、改保存目录、Markdown 备用入口

  • 改导出位置:编辑 resource/config/config.ini,把temp、user、result三个路径指到你想放的目录,不用动代码。
  • 多账号批量导:不同账号的 cookies 分别缓存在resource/user/,启动时按序号选择,导完一个再导下一个。
  • 只要 Markdown 版:项目里有第二个入口 fetch_all_message.py,把全部未删除的可见说说(含 2014 年之前的记录,含高清图片)整理成一份所有可见说说.md,图片一并下载到resource/fetch-all/,适合直接投喂给笔记工具。
  • 定时备份:给python main.py套一层计划任务(Windows 任务计划程序或 Linux cron),定期跑一次,档案常新。

行动清单:从克隆仓库到打开网页版只需 4 步

  1. git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory,进入目录;
  2. 建虚拟环境,pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt;
  3. python main.py,用手机QQ扫码登录;
  4. 打开resource/result/你的QQ号/里的 HTML 网页版,从最新一条翻到最早一条。

最后提醒:本工具仅限备份本人QQ空间数据,请遵守平台规则与相关法律法规,勿用于商业用途或抓取他人数据。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询