QQ空间历史说说全量备份 5 分钟跑通:扫码一次,Excel 与网页双格式导出指南
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
GetQzonehistory 是个 QQ 空间说说备份工具:手机 QQ 扫一次码,自动把可见的历史说说、评论、图片全部落到本地硬盘,导出成可搜索的 Excel 和一个本地网页。你的成本:一次扫码,加几分钟等待。
QQ空间说说备份 30 秒速览
| 项 | 说明 |
|---|---|
| 一句话定位 | 扫码登录后,走"消息列表 + 可见说说"两路接口,把历史动态全量存到本地 |
| 适合谁 | 想给几年老空间存档的人;不需要写代码,会复制命令就行 |
| 耗时 | 环境搭好约 5 分钟;抓取速度固定为每 10 条 3 秒,看数据量 |
| 难度 | 入门,全部命令复制粘贴即可 |
| 产物格式 | 多份 xlsx + 本地 html 网页 + pic/ 图片目录,另有 Markdown 可选 |
备份产物速览:QQ空间说说导出后拿到什么文件
跑完之后,所有文件都在resource/result/{你的QQ号}/下,位置由 config.ini 决定,改输出目录就改这个文件。
| 文件 | 内容 |
|---|---|
{QQ号}_全部列表.xlsx | 消息列表全量,四列:时间 / 内容 / 图片链接 / 评论 |
{QQ号}_说说列表.xlsx | 你自己发的说说,已去重 |
{QQ号}_转发列表.xlsx | 你转发过的内容 |
{QQ号}_留言列表.xlsx | 你在别人说说下的留言 |
{QQ号}_其他列表.xlsx | 别人发的、与你有关的动态 |
{QQ号}_好友列表.xlsx | 列表里出现过的好友:昵称、QQ 号、空间主页 |
{QQ号}_说说网页版.html | 仿空间排版的本地网页,双击翻阅,点图看高清 |
pic/ | 全部图片的本地副本,不依赖服务器 |
两路数据各自拉全后按作者归属分类,所以一份导出里既有你自己发的,也有别人关于你的记录。
QQ空间历史说说备份 5 步跑通
第 1 步:确认有 Python 3,后面命令都基于它。
python3 --version第 2 步:拉代码到本地。
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory第 3 步:建虚拟环境装依赖,不污染系统环境。
python3 -m venv myenv source myenv/bin/activate # Windows 改用 myenv\Scripts\activate pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt第 4 步:装系统级 zbar 库。它是 pyzbar(二维码解码库)的底层依赖,缺了它扫码功能直接报错,装 Python 包解决不了。
sudo dnf install -y zbar # CentOS / Fedora # sudo apt install -y zbar # Ubuntu / Debian # brew install zbar # macOS第 5 步:运行,终端会画出二维码字符块,手机 QQ 扫码确认,随后自动开始抓取。
python main.py原理 30 秒版:QQ空间说说是怎么被抓下来的
机制一:扫码登录,相当于办一张"会员卡"
第一次启动,程序向登录接口要一张一次性二维码,直接在终端里用黑白字符块画出来;手机确认后,拿到的会话 cookie(服务端用来认出"你是你"的一串凭证)写入resource/user/,文件名就是你的 QQ 号。以后每次启动它会先列出已登录用户,输个序号就复用;输0才重新扫码。卡过期了就删掉对应文件重办。
⚠️ 一条提醒:cookie 是明文存放的,等于这个账号的登录状态本身。别把resource/user/目录放进网盘同步,也别拷给别人;弃用某账号时删掉那个文件即可。
机制二:消息总量是"问"出来的
服务端不直接报总数,只在某个偏移量处回答"有没有数据"。程序就取中点发一次请求:有数据就往小找,没有就往大找,像盲人用盲杖逐级下探台阶,一轮一轮把范围夹住,最多 24 轮就锁定总量。之后每 10 条一批往下翻,批间睡 3 秒,节奏接近真人刷页。
count = Request.get_message_count() # 二分问出消息总量 for i in trange(int(count / 10) + 1): response = Request.get_message(i * 10, 10) # 每批10条 # 解析HTML成 [时间, 内容, 图片, 评论] time.sleep(3) # 批间3秒 save_data() # 写Excel + 下载图片还有个贴心设计:程序注册了信号处理,你按 Ctrl+C 中断时,它先把已抓到的数据落盘再退出,不会白跑。
翻车急救:QQ空间说说备份报错速查
| 现象 | 大概率原因 | 一条命令解决 |
|---|---|---|
| 启动报"无法找到 zbar 共享库" | 系统库没装 | sudo dnf install -y zbar(按系统换 apt/brew) |
| 终端乱码看不到二维码 | 字体不支持字符块 | 直接扫resource/temp/QR.png这张图 |
| 提示"登录失败:请重新登录" | 缓存 cookie 过期 | 删resource/user/里对应文件再跑 |
| 长时间卡在"获取消息列表数量" | 二分每轮都要发请求 | 等;太久就 Ctrl+C 重跑,已有数据会保存 |
| pic/ 里少几张图 | 个别图片请求失败 | 重跑python main.py,cookie 还在不用重扫 |
一条命令自检环境和依赖是否齐全:
python -c "import requests, pandas, qrcode, pyzbar, bs4, openpyxl; print('依赖全部OK')"再玩深一点:QQ空间说说备份的三个进阶玩法
导出 Markdown 纯文本档案。第二个入口走"可见未删除说说"这条路,每页 30 条翻完全部,连 2014 年之前的也一并覆盖,生成所有可见说说.md,图片下载后用本地路径引用,转发和评论保留为引用块,直接丢进 Obsidian 或博客仓库就能用。
python fetch_all_message.py多账号轮换备份。resource/user/会积累多个账号的 cookie,启动时选序号复用,输0换号重扫。结果按 QQ 号分目录存放,互不覆盖,一台机器轮着给家里几个老号都存一遍。
拿 Excel 做统计。备份完的数据就是普通表格,用 pandas 读进来,看看自己哪一年话最多:
import pandas as pd df = pd.read_excel('resource/result/你的QQ号/你的QQ号_说说列表.xlsx') df['时间'] = pd.to_datetime(df['时间']) print(df.groupby(df['时间'].dt.year).size()) # 按年统计说说的条数结语
一次扫码,把几年的空间说说、图片、评论全部搬进自己的硬盘。 Excel 负责搜索,网页负责翻阅,Markdown 负责存档,各取所需。 数据全程不上传到任何地方,只落本地。 接口总有一天会换地方,但你手里的副本不会过期——记忆这种东西,攥在自己手里才算数。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考