备份QQ空间历史说说:GetQzonehistory
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
深夜翻空间想找五年前的那条转发,才发现QQ空间历史说说备份一直没做,官方也没有批量导出入口。GetQzonehistory 就是干这个的:扫码登录后自动抓取历史消息与可见说说,导出Excel、网页版和图片。照下文的步骤来,几分钟把多年空间记录存进本地文件夹。
快速上手:QQ空间历史说说备份教程(只需三步)
全程不输密码,三个命令块走完就能开始抓数据。
- 拉代码,建隔离环境
# 下载项目并进入目录,创建名为 myenv 的虚拟环境 git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory python -m venv myenv建隔离环境,避免依赖污染系统Python。
提示:虚拟环境是官方推荐姿势,别跳过。
- 激活环境,装齐依赖
# Windows 用 myenv\Scripts\activate(macOS/Linux 用下行) source myenv/bin/activate pip install -r requirements.txt一次装齐页面解析与表格依赖。
提示:pip慢可换国内镜像源再装。
- 运行程序,手机扫码
python main.py扫码后自动开始抓取,无需输密码。
提示:扫完记得在手机上点确认。
导出结果:备份完成后你拿到什么文件结构
所有产物都放在resource/result/你的QQ号/下,文件名带QQ号前缀:
resource/result/你的QQ号/ ├── 你的QQ号_全部列表.xlsx ├── 你的QQ号_说说列表.xlsx ├── 你的QQ号_转发列表.xlsx ├── 你的QQ号_留言列表.xlsx ├── 你的QQ号_其他列表.xlsx ├── 你的QQ号_好友列表.xlsx ├── 你的QQ号_说说网页版.html └── pic/ # 说说图片- 全部列表.xlsx:历史互动全量时间线,含时间、内容、图片链接、评论四列,检索整理先查它。
- 说说列表.xlsx / 转发列表.xlsx:你发布的原创说说与转发内容分文件存放,方便分类翻看。
- 留言列表.xlsx / 其他列表.xlsx:好友留言和其余互动消息归档,总表之外的细节都在这。
- 好友列表.xlsx:消息列表中出现过的互动好友,含昵称、QQ号、空间主页链接。
- 说说网页版.html + pic/:网页版按时间倒序还原空间版式,文本内容在本地;pic 里的图片按内容命名,重名自动加时间戳后缀。
两个客观边界要说明:设置为"仅自己可见"的说说不出现在历史消息列表里,拿不到;已经删除的说说也取不到,未删除接口只返回当前可见的内容。想要档案尽量完整,趁还可见时就备份。
原理解析:扫码登录到文件落盘的完整流程
先说结论:程序模拟浏览器登录QQ空间,走两条数据通道采集,最后按类型分流落盘。
登录:官方扫码,密码不经过程序
util/LoginUtil.py 先请求QQ官方二维码接口,把二维码解码后以字符矩阵形式打印在终端,再每3秒轮询登录状态,直到返回"登录成功"取回 cookie。全程只和 cookie 打交道,不经过密码。登录态会存到resource/user/下,下次运行会列出已登录用户供你选择,不用重复扫码。
采集:历史消息与可见说说双通道
main.py 先用二分法估算消息总数,再每10条一批调用Request.get_message拉页,用 BeautifulSoup 解析出时间、内容、图片,每批之间休息几秒控制节奏:
for i in trange(int(count / 10) + 1): response = Request.get_message(i * 10, 10) # 每次取10条随后调用GetAllMomentsUtil.get_visible_moments_list()每30条一页拉取"未删除说说",带内容和评论,与消息列表去重后合并。说说结果会缓存在resource/fetch-all/,重跑时直接读缓存。
落盘:按内容分类,图片冲突自动处理
save_data()把每条记录按内容分流:含自己昵称且标记"留言""转发"的进对应列表,其余进其他列表,好友信息同步汇总。图片全部下载到 pic/,文件名剔除非法字符、超40字截断,重名追加时间戳。最后由render_html生成网页版,图片链接换成高清图地址。程序注册了信号处理,按 Ctrl+C 时会先把已抓取的数据存盘再退出。
避坑指南:安装与运行常见问题 FAQ
Q:运行时提示"无法找到 zbar 共享库",依赖装不上?pyzbar 负责解析二维码,它依赖系统里的 zbar 库。Linux 先装系统库(RPM 系用dnf install -y zbar,Debian 系用apt install libzbar0),macOS 用brew install zbar,装完重新运行即可。
Q:终端里的二维码扫不出来,或者提示"二维码已失效"?二维码是终端打印的字符矩阵,受字体和终端影响可能扫不出,此时可以直接扫resource/temp/QR.png这张图。状态显示已失效就按 Ctrl+C 退出,重新运行python main.py生成新码。
Q:抓取中途提示"请求超时"或网络波动怎么办?每次请求有5/10秒超时,超时不会崩溃,只是跳过那一批。换到更稳定的网络重新运行即可;程序内置了请求间隔,不建议开多个实例并行跑。
Q:导出的条数和我在空间里看到的不一样?比预期多是正常的,历史消息和可见说说两个通道去重后合并,覆盖面更全。偏少通常是存在"仅自己可见"或已删除的说说,这两类都取不到,属于接口层面的限制。
Q:导出的 Excel 和网页版能在手机上打开吗?.xlsx 兼容主流办公软件,导入 WPS 或 Numbers 都能正常整理。网页版在任何浏览器都能打开,文字与版式完全存在本地,图片走原图链接加载。
那五年前的转发,不用再靠翻聊天记录碰运气了。备份完成的那一刻,多年记录已经躺在resource/result/里,Excel 可查、网页可看、图片齐全。把这份档案复制到移动硬盘或网盘,就算空间改版也不慌。现在克隆仓库,照着三步跑一遍。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考