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 里的说说列表。
进阶玩法:四种让数据继续干活的方式
- 定个备份周期。每三到六个月重跑一次
python main.py。登录态有缓存,resource/fetch-all/里还有可见说说的本地缓存,第二次跑会快不少,把新结果按日期归档即可。 - 统计每年说了多少话。Excel 的"时间"列按年分组,几行 pandas 就能看出哪一年你话最多,是个人时间线分析的现成起点。
- 把 HTML 做成纪念册。网页样式内联在 HTML 的
<style>里,改个配色字体,用浏览器存成 PDF,就是可打印的小册子。 - 当作其他项目的数据源。各 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),仅供参考