GetQzonehistory 教程:把 QQ 空间历史说说完整导出到本地
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
GetQzonehistory 是一个免费的 Python 工具,负责把你 QQ 空间的历史说说的内容、图片、评论批量导出到本地。你只需扫码登录一次,它就能从空间消息列表里逐条取回历史记录,最终生成 6 个 Excel 表格、1 个网页版和 1 个图片存档目录。
原理:为什么它能找回历史说说
空间网页版只显示近几年的动态,早期说说在界面上翻不到;手动截图只能覆盖你翻过的那几页,官方也没有一键全量导出的入口。
GetQzonehistory 走的是另一条路:QQ 空间的消息列表其实保存了你大部分说说被互动时的记录。程序模拟扫码登录后,按每批 10 条、间隔 3 秒的节奏拉取整个消息列表,逐条解析发布时间、内容、图片链接和评论,再和你账号下当前可见的未删除说说做一次交叉比对,补齐消息列表里没有的部分。所有请求都从你的电脑直连 QQ 服务器,账号凭证不经过任何第三方中转。
核心模块分工如下:
- main.py:主程序入口,负责登录、翻页抓取和落盘保存
- util/LoginUtil.py:生成登录二维码并校验扫码结果
- util/RequestUtil.py:封装全部网络请求
- util/GetAllMomentsUtil.py:按每页 30 条抓取所有未删除说说
- util/ToolsUtil.py:内容去重判断与 HTML 模板
- util/ConfigUtil.py:读取 resource/config/config.ini 中的保存路径
三步完成环境准备和首次运行
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 -r requirements.txt python main.py运行python main.py后终端会打印一个二维码,用手机 QQ 扫一下即可完成登录,全程不需要输入密码。接下来进度条会实时显示拉取批次;抓完消息列表后进入第二个阶段,抓取可见说说并合并去重,最后自动打开结果目录。macOS 用户如果启动时提示找不到 zbar,先执行brew install zbar再重跑即可。
导出后生成哪些文件
结果保存在resource/result/你的QQ号/下,共 3 类:
- 6 个 Excel 表格:全部列表(含时间、内容、图片链接、评论 4 列)、说说列表、转发列表、留言列表、其他列表、好友列表(昵称、QQ 号、空间主页)
- 1 个网页版:
QQ号_说说网页版.html,把说说和转发按时间倒序拼成类似空间原貌的页面,表情码会被还原成图片 - 1 个图片目录:
pic/文件夹,每条带图说说的原图单独保存,文件名取自说说内容
导出结束前终端还会打印 7 项统计:消息总数、好友数、说说数、转发数、留言数、其他内容数、图片数,以及最早一条说说的发布时间,方便你核对是否拉全。
两个数据源与去重、中断保护机制
第一数据源是消息列表:覆盖面广,但只包含出现过互动记录的说说。第二数据源是 util/GetAllMomentsUtil.py 抓取的未删除可见说说:数量等于空间里的全部存量,但拿不到互动历史。
合并时用 util/ToolsUtil.py 里的is_any_mutual_exist()做子串级比对,两条记录内容互相包含就判定重复,避免同一条说说出现在两个表格里。
中断保护由 main.py 的signal_handler实现:运行中按 Ctrl+C 或意外终止时,程序会先把内存里已抓的数据完整写入 Excel,而不是白干重来。
进阶用法:换入口和改输出路径
只要 Markdown 版说说?仓库提供第二个入口 fetch_all_message.py,它单独运行后只抓取可见未删除说说和高清图片,输出所有可见说说.md,包含正文、转发原文和每条评论,适合直接导入笔记软件,不带好友和留言数据。
想换导出位置?修改 resource/config/config.ini 里result、temp、user三项路径即可,util/ConfigUtil.py 启动时会重新读取。user目录存放登录态,保留它可以在多账号间切换时跳过重新扫码。
报错与数据不全时先查这里
macOS 启动提示找不到 zbar 共享库
先运行brew install zbar,再执行python main.py。原因是依赖里的 pyzbar 需要系统级的 zbar 库才能识别二维码,Linux 下对应命令是sudo dnf install -y zbar。
导出的数据缺少更早期的说说
这是机制边界:从未进入过消息列表的说说(例如仅自己可见、无任何互动的老动态)取不到。用python fetch_all_message.py单独跑一遍可见说说抓取,可以补上当前还存量的部分。
跑到一半断了,需要全部重来吗
不需要。按 Ctrl+C 退出时已抓数据会先落盘;下次重新登录后,resource/temp/下的缓存和已保存文件会保留,重跑只会补齐缺失批次。
下一步行动
- 克隆仓库并创建虚拟环境
- 安装依赖后运行
python main.py,扫码登录 - 在
resource/result/你的QQ号/核对 6 个 Excel 与网页版是否齐全 - 若只需要文字存档,改跑
python fetch_all_message.py - 把结果目录拷贝到网盘或移动硬盘,之后每季度重跑一次做增量归档
免责声明:本工具仅供个人使用与学习研究,请遵守平台相关条款,不侵犯他人隐私与权益,不用于商业用途。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考