☰
GetQzonehistory 使用指南:如何完整导出 QQ 空间历史说说
2026/10/16 2:55:40 网站建设 项目流程

GetQzonehistory 使用指南:如何完整导出 QQ 空间历史说说

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

你打开一个用了多年的 QQ 空间,想把八年前写的那段话说出来看看,页面却只能一页页往后翻,翻很久也不敢保证没有漏掉。如果能把历年说说连同图片、评论一次性导出到硬盘,事情就好办多了。GetQzonehistory 是一个 Python 小工具,替你登录自己的账号,把 QQ 空间历史说说完整导出成本地 Excel 和网页文件。

功能速览:三十秒看懂它能做什么

这个工具会拉取你账号的互动消息列表和当前可见说说,分类后写成可直接打开的文件:

  • 历史说说整批导出,按时间排好
  • 说说图片自动下载,单独建文件夹存放
  • 扫二维码登录,不输账号密码
  • Excel 加 HTML 双格式,统计、浏览各取所需
  • 评论、转发、好友信息一并收录
  • 数据全程留在本机

设计思路:三个让你用得放心的决定

扫码登录:全程不碰密码

工具不会向你索要密码。util/LoginUtil.py 从官方登录接口取回二维码,用 pyzbar 本地解码后,直接在终端里画成字符画,你用 QQ App 扫一下即可。登录成功后 cookies 写入resource/user/目录,下次运行时 util/ConfigUtil.py 会列出已登录账号,输入序号就能跳过扫码(输入 0 才重新扫码)。

两条腿抓数据:说说尽量不留漏

QQ 空间页面只显示近期内容,但账号的互动消息列表能追溯到很早以前。所以 main.py 先把完整消息列表抓下来(说说、留言、转发都从这里走),再由 util/GetAllMomentsUtil.py 把当前可见的未删除说说抓来补位,并用 util/ToolsUtil.py 做内容比对过滤重复。有一处局限要提前说明:设为"仅自己可见"的说说不会进入消息列表,工具拿不到。

中断保护:Ctrl+C 之后数据也丢不了

长时间抓取难免碰上网络波动。main.py 预先注册了信号处理:你按 Ctrl+C 时,程序会先把已抓到的数据写成 Excel,再退出。请求节奏上,每抓 10 条暂停 3 秒,单次请求还带 5 秒缓冲,抓得稳但不激进。

架构速写:每个文件各管一段

GetQzonehistory/ ├── main.py # 主入口,串联登录→抓取→分类→落盘 ├── fetch_all_message.py # 辅助入口,可见说说转 Markdown ├── requirements.txt # 依赖清单 ├── resource/ │ ├── config/config.ini # temp/user/result 路径配置 │ ├── temp/ # 二维码等临时文件(自动创建) │ ├── user/ # 登录后的 cookies 缓存(自动创建) │ ├── result/ # 最终导出结果(自动创建) │ └── fetch-all/ # 可见说说的缓存(自动创建) └── util/ ├── LoginUtil.py # 扫码登录、cookie 计算 ├── ConfigUtil.py # 读配置、多账号选择 ├── RequestUtil.py # 消息列表请求、总量估算 ├── GetAllMomentsUtil.py # 未删除说说全量抓取 └── ToolsUtil.py # HTML 解析、网页模板等

整体是一条单行道:扫码登录后,util/RequestUtil.py 用二分法估算消息总量,再分页拉取;main.py 逐批用 BeautifulSoup 解析出时间、内容、图片链接、评论,顺带收集互动好友名单;合并可见说说后分类写入resource/result/你的QQ号/。所有请求都来自你本机与 QQ 空间官方接口,中间没有经过任何第三方服务器。

三步上手:从克隆到出结果

第一步:获取项目

# 克隆仓库 git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory # 进入项目目录 cd GetQzonehistory

第二步:安装依赖

# 创建名为 myenv 的虚拟环境(推荐,避免污染系统环境) python -m venv myenv # Windows 激活方式:myenv\Scripts\activate source myenv/bin/activate # macOS/Linux 激活命令 # 按清单安装依赖(含 pandas、requests、qrcode、pyzbar 等) pip install -r requirements.txt

留意一点:pyzbar 依赖系统 zbar 库。终端若提示"无法找到 zbar 共享库",Linux 上执行sudo dnf install -y zbar;Mac 上程序会检测 Homebrew 并询问是否代为安装。

第三步:启动运行

python main.py

执行后你会看到:首次运行先在终端画出一张字符画二维码,用 QQ App 扫码,出现"登录成功"后进入"正在获取消息列表数量..."进度条,随后是主抓取进度条,每 10 条停 3 秒,量大时耗时不短。完成后终端打印各列表条数、最早说说时间、好友与图片数量等统计,并自动打开结果文件夹(带图形界面的系统下)。第二次运行不用重新扫码,会列出已登录用户供你按序号选择。

产出解读:result 文件夹里都有什么

运行结束后,成果集中在resource/result/你的QQ号/下(下表文件名以 QQ 号为前缀):

文件内容核心字段
QQ号_全部列表.xlsx消息列表抓到的全部记录时间 / 内容 / 图片链接 / 评论
QQ号_说说列表.xlsx你自己发布的说说时间 / 内容 / 图片链接 / 评论
QQ号_转发列表.xlsx你发布的转发时间 / 内容 / 图片链接 / 评论
QQ号_留言列表.xlsx好友留在你说说下的留言时间 / 内容 / 图片链接
QQ号_其他列表.xlsx其他好友的互动内容时间 / 内容 / 图片链接
QQ号_好友列表.xlsx互动中出现过的好友昵称 / QQ / 空间主页
QQ号_说说网页版.html还原空间观感的网页点图可放大查看
pic/自动下载的说说图片按内容命名,重名自动改

只想翻看就打开 HTML,想整理就用 Excel 里的说说列表。

进阶玩法:四种让数据继续干活的方式

  1. 定个备份周期。每三到六个月重跑一次python main.py。登录态有缓存,resource/fetch-all/里还有可见说说的本地缓存,第二次跑会快不少,把新结果按日期归档即可。
  2. 统计每年说了多少话。Excel 的"时间"列按年分组,几行 pandas 就能看出哪一年你话最多,是个人时间线分析的现成起点。
  3. 把 HTML 做成纪念册。网页样式内联在 HTML 的<style>里,改个配色字体,用浏览器存成 PDF,就是可打印的小册子。
  4. 当作其他项目的数据源。各 Excel 统一采用"时间/内容/图片链接"三列约定,写个小脚本按关键词或年份过滤,就能产出二次文件。

避坑自查:先用这 4 条对照一下

  • 终端提示"无法找到 zbar 共享库"→ 缺的是系统 zbar 库,不是程序出错。Linux 用包管理器安装(如sudo dnf install -y zbar),Mac 按程序内提示处理即可。
  • 出现"二维码已失效"→ 登录二维码有有效时限。重跑程序生成新码,几分钟内完成扫码。
  • "仅自己可见"的说说没导出来→ 这是已知边界。工具的主数据源是互动消息列表,仅自己可见的说说不在其中,属于拿不到的部分。
  • 中途想强制结束→ 按 Ctrl+C 没问题,程序会先把已抓数据写成 Excel 再退出,下次运行接着用缓存的登录态。

使用红线:

  • 工具仅用于备份自己账号的数据,不要拿去批量抓取他人内容或用于商业用途;
  • resource/user/里的文件等同于你的登录凭证,resource/result/是你的私人记忆,保存在本机、不要随手外传;
  • 程序依赖 QQ 空间网页版的公开接口,接口变动时可能失效,作者不承诺持续可用,详见 README.MD 中的免责声明。

你记不清的那条 2015 年的说说,多半还挂在服务器那头,只是等你哪天想起来它可能已经不在了。今天花几分钟跑一次python main.py,往后想回顾时,全部东西都在你自己硬盘里。

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

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

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

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

立即咨询