GetQzonehistory 实战:如何把QQ空间历史说说、评论和配图一次性完整导出
2026/9/20 17:49:01 网站建设 项目流程

GetQzonehistory 实战:如何把QQ空间历史说说、评论和配图一次性完整导出

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

QQ空间从来不提供数据导出入口。我想把几年的说说、留言和配图整理归档,能做的只有逐条点开、截图,评论和互动基本注定丢掉。后来我用了 GetQzonehistory——一个免费、纯本地运行的 Python 工具,通过官方扫码登录,把能拿到的历史说说、留言、转发连同配图和评论批量导出成本地 Excel 和图片文件夹,全程不碰密码。

它不是什么"数据恢复"黑科技,原理其实很朴素,先把这点说清楚,你才能判断自己该不该跑。

两条数据通道,一次自动去重

程序跑起来后做的事,拆开来只有三件:

通道抓取什么实现位置
空间历史消息列表评论、转发、留言等互动记录,按批翻页main.py 调用 util/RequestUtil.py 的请求接口
自己空间的说说列表当前仍可见、未删除的全部说说(含 2014 年之前的)util/GetAllMomentsUtil.py,每页 30 条
合并落盘两通道按内容比对去重后,统一分类保存main.py 的 save_data 函数

消息列表通道抓的是"别人跟你发生过的互动",说说通道抓的是"你空间里还挂着的动态"。前者有上限,后者只要空间里看得见就能取,两条通道互补,重复的内容由is_any_mutual_exist按文本比对剔除。

能拿回多少:一条明确的线

能拿回来的:

  • 历史消息列表里还在的互动记录(评论、转发、留言);
  • 当前空间里仍可见的说说,连图片带评论,包括 2014 年之前的老数据。

拿不回来的:

  • 已经彻底删除的说说——接口里查不到,工具也无能为力;
  • 设为"仅自己可见"、且从未出现在消息列表里的记录;
  • 平台规则调整后从消息列表里消失的老互动。

一句话总结上限:列表里还留着 + 空间里还看得见。如果你发现消息列表被截短了,早跑一次多一分。

跑完你会拿到:6 张 Excel、1 个网页版、1 个图片文件夹 📦

所有成果落在resource/result/你的QQ号/目录下,路径由 resource/config/config.ini 控制,想换保存位置改那里即可:

文件里面是什么
QQ号_全部列表.xlsx所有互动消息按时间排序的完整清单
QQ号_说说列表.xlsx你发布的原创说说(时间、内容、图片链接、评论)
QQ号_转发列表.xlsx你转发过的内容
QQ号_留言列表.xlsx收到的留言
QQ号_好友列表.xlsx互动过的好友昵称、QQ 号、空间主页
QQ号_其他列表.xlsx未归入以上分类的记录
QQ号_说说网页版.html还原空间样式的页面,浏览器直接打开
pic/ 目录说说配图,按内容命名归档

💡 两个容易忽略的细节:图片链接会被自动替换成高清版本(把链接里的/m/换成/s/);文件名以内容命名并截到 40 字符,撞名时自动追加时间戳,不会互相覆盖。另外仓库里还有 fetch_all_message.py 这个入口,单独跑可见说说通道,输出带图片文件的 Markdown 版本(所有可见说说.md)。

从零跑起来 GetQzonehistory:四步

第 1 步,克隆仓库并进入目录:

git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory

第 2 步,建一个隔离的虚拟环境,把依赖关进去,不污染系统 Python:

python -m venv myenv

第 3 步,激活环境并安装依赖(11 个包:requests、beautifulsoup4、pandas、qrcode、tqdm、pyzbar 等):

# Windows myenv\Scripts\activate # macOS / Linux source myenv/bin/activate pip install -r requirements.txt

⚠️ 激活命令分系统,用错的话python指向的还是系统环境,后面装的全是白装。依赖里 pyzbar 负责识别二维码:RPM 系 Linux 需先执行sudo dnf install -y zbar,macOS 执行brew install zbar——util/LoginUtil.py 在 Mac 上检测到 Homebrew 时会主动引导安装并建好软链接。

第 4 步,启动:

python main.py

回车之后发生了什么

终端会先打印一个字符二维码,用手机 QQ 扫掉并确认,登录完成。凭证以 cookie 形式写进resource/user/目录,下次启动直接选序号复用,输入 0 才重新扫码。

接下来是最耗时间的部分。程序先用二分查找定位消息总数,然后每批 10 条翻页抓取;请求内部固定等 5 秒,每解析完一批再停 3 秒。这是刻意压低的节奏,防风控用的,进度条走得慢是正常现象,别中途催它。

抓取完消息列表后,程序自动切换说说通道补齐可见动态,去重合并,然后下配图、分表、生成网页版。

⚠️ 中途断了不用重头再来:程序注册了 Ctrl+C 和进程终止的信号保护(main.py 的 signal_handler),已抓到的数据会先存盘再退出,重跑一次拿到的仍是完整导出。

最后终端给出一串汇总:消息总条数、最早一条说说的发布时间、好友数、说说/转发/留言/其他各多少条、图片多少张,随后自动打开结果文件夹(Windows 用 startfile,macOS 用 open,Linux 用 xdg-open)。验收一眼就能看出有没有跑全。

常见问题:现象、原因、动作

现象原因动作
二维码扫了没反应码已过期,或电脑/手机网络被代理拦截重新运行python main.py出新码,检查两端网络连通
启动报找不到 zbar 共享库系统缺少二维码识别的底层库macOS 跑brew install zbar;RPM 系 Linux 跑sudo dnf install -y zbar,装完重跑
导出到一半中断手动停止或网络波动落盘的 Excel 是完整数据;重跑程序会完整重新抓取一次
Excel 双击打不开文件正被 WPS/Office 占用关闭占用程序后重开;或用 pandas 直接读.xlsx验证内容

导完之后,留一个习惯

我的用法是把"全部列表"按年份筛一遍,做成年度时间线;再用数据透视表统计每个好友的互动频次和最近一次互动时间,关系亲疏一表见分晓。更实际的是把它当保养项目:每季度全量跑一遍,导出耗时和互动量成正比,但一次完整备份换来的安心,远比翻空间截图省事。

从导出完成那一刻起,那些说说、评论和配图就不再只寄存在别人的服务器上,它们在你手里。

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

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

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

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

立即咨询