GetQzonehistory 免费一键导出 QQ 空间历史说说、评论与图片
2026/9/20 6:00:16 网站建设 项目流程

GetQzonehistory 免费一键导出 QQ 空间历史说说、评论与图片

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

GetQzonehistory 是一个免费开源的 Python 工具,帮你想备份自己的 QQ 空间的人,把历史说说、转发、留言和配图一次性抓下来,产出 6 张 Excel 表、一个离线网页和一堆本地高清图片。

它解决什么问题

QQ 空间没有官方导出入口。十年前的说说在网页端翻几十页才见底,想完整搬下来,手抄不现实。GetQzonehistory 做的事就一件:模拟登录你的 QQ 空间,把历史消息一条一条拉下来,按类型拆成表格和图片存进硬盘。

跑完之后你会得到一个以自己 QQ 号命名的文件夹,里面是结构化的数据——每条消息带精确到秒的发布时间、独立的图片链接列、逐条拆开的评论内容,后面想做任何统计都方便。

怎么跑起来

环境要求只有一个:装好 Python 3。Windows、macOS、Linux 都能跑。

git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory python -m venv myenv source myenv/bin/activate # Windows 用 myenv\Scripts\activate pip install -r requirements.txt python main.py

如果 pip 下载依赖特别慢或失败,把安装那条换成阿里云镜像源:

pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt

启动后终端会打印一个二维码,用手机 QQ 扫一下就完成登录,全程不输密码。之后盯着进度条,看到"导出成功"提示,程序会自动打开resource/result/你的QQ号/文件夹,同时打印总条数、最早一条说说的发布时间、各表数量和图片张数,逐项对账就行。

产物清单与验收

一次完整导出后,resource/result/你的QQ号/里的东西如下表:

文件里面是什么
QQ号_全部列表.xlsx抓到的全部消息:时间、内容、图片链接、评论
QQ号_说说列表.xlsx你本人发布的说说
QQ号_转发列表.xlsx你转发过的每一条内容
QQ号_留言列表.xlsx你留在空间留言板的互动
QQ号_其他列表.xlsx好友出现在你动态里的消息
QQ号_好友列表.xlsx互动好友的昵称、QQ 号、空间主页地址
QQ号_说说网页版.html说说加转发按时间倒序排列的离线网页
pic/全部配图,文件名取自说说正文,方便对号

网页版不用联网就能翻

说说网页版.html还原了头像、昵称、发布时间、正文、配图和评论区,QQ 表情也换成了图片显示。双击就能打开,断网也不影响,适合当一份随时翻的本地档案。

图片直接落成本地文件

pic/目录里存的是下载好的原图,文件名就是说说正文的前 40 个字(去掉非法字符和空格),同一条说说有多张图就并排存。哪天原链接失效,图还在你机器上。

数据从哪来

整条链路是四个动作,看懂它你就知道这份备份的边界在哪。

登录:扫码拿 Cookie

登录逻辑在 util/LoginUtil.py。程序在终端画出一个二维码,手机 QQ 扫码后拿到的 Cookie 存进resource/user/下以 QQ 号命名的文件。下次运行会列出已登录账号让你输序号,输 0 才是重新扫码——所以定时任务不用每次扫码。

抓取:两路数据合并,自带限速

数据分两路。第一路是空间历史消息列表,每批取 10 条,批与批之间程序主动停 3 秒,是刻意的限速;请求数量本身用二分查找估算,先定位总数再逐批拉。第二路是"未删除的可见说说"接口(util/GetAllMomentsUtil.py),每页 30 条,能补到消息列表里没有的老内容。两路合并、去重后再按"说说 / 转发 / 留言 / 其他"分类落盘。

原始请求按 QQ 号缓存在resource/fetch-all/下,重跑直接读缓存,不会重复拉取,多个账号之间互不串。

按 Ctrl+C 也不白跑

main.py 里注册了信号处理函数:你按Ctrl+C时,程序会先把已抓到的内容全部存盘再退出。进度条走得慢可以先停掉,下次接着跑,已有数据不会丢。

拿不到的内容也说清楚

工具读的是"消息列表 + 可见说说"。仅自己可见的说说、已经删除的说说,天然不在结果里,这属于数据来源决定的上限,多跑几次也补不回来。

报错速查

现象多半原因处理办法
pip 装依赖很慢或失败网络源问题换阿里云镜像源重装,命令见上一节
提示"无法找到 zbar 共享库"缺二维码识别组件RPM 系 Linux 执行sudo dnf install -y zbar;macOS 按提示用 Homebrew 安装,程序会自动建软链接
扫码后"二维码已失效"或长时间无反应手机 QQ 未在线、二维码过期或系统时间不准重新运行生成新码;刚被风控拦截时等几分钟再试
只抓到一部分说说仅自己可见的内容不在消息列表;网络抖动漏批属正常范围;可多运行几次,已抓到的部分会先存盘
跑得特别慢每批之间停 3 秒是刻意限速正常现象,也可以分多次跑完

进阶玩法

用 Pandas 算出你的"年度话痨月"

Excel 列名是现成的,几行代码就能出统计:

import pandas as pd df = pd.read_excel('你的QQ号_说说列表.xlsx') df['时间'] = pd.to_datetime(df['时间'], format='%Y年%m月%d日 %H:%M:%S') print(df.groupby(df['时间'].dt.to_period('M')).size())

再往下可以加词频统计、配图数量随时间的变化,回忆就能变成一张图表。

让备份自己按时跑

Cookie 可以复用,定时任务不用再扫码。Linux/macOS 在 crontab 里加一行,每月 1 号凌晨 3 点跑一次:

0 3 1 * * cd /path/to/GetQzonehistory && source myenv/bin/activate && python main.py

Windows 用任务计划程序做同样的事即可。

想要一份 Markdown 版

仓库里另有 fetch_all_message.py,单独运行它能把全部可见说说另存成一份 Markdown,配图一并下载到resource/fetch-all/下,转发和评论都带在条目里。

安全与红线

  • 数据只写入你自己硬盘的resource/result/,不经过任何第三方服务器。
  • 登录靠扫码,不收集密码;Cookie 就在resource/user/,不放心就删掉重扫。
  • 全部代码开源可查:登录逻辑在 util/LoginUtil.py,请求构造在 util/RequestUtil.py,输出路径配置在 resource/config/config.ini。
  • 只备份你自己空间的内容,不要拿它去抓别人的数据。项目声明仅供学习与技术研究,不得用于商业或非法用途。

今晚花十几分钟走完一遍,你空间里十年的数据就有了第二份存档。觉得顺手的话,去项目主页点一颗 Star 支持一下。

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

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

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

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

立即咨询