GetQzonehistory 完整使用指南:扫码备份QQ空间全部历史说说
GetQzonehistory 完整使用指南扫码备份QQ空间全部历史说说【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory上个月帮朋友处理一个冻号恢复的账号他找回后发现 2013 年的说说在空间消息列表里已经查不到了官方入口能翻的只剩 API 还暴露的那部分。他让我帮忙把能拿到的历史说说都存下来我试了 GetQzonehistory——一个通过扫码登录备份 QQ 空间全部历史说说的开源工具。整个流程比预想的顺利但也踩了两个坑。它到底干了什么扫码登录、双源抓取、多格式导出GetQzonehistory 是一个纯 Python 命令行工具先用 QQ 官方 ptlogin2 扫码登录拿到会话凭证再分页拉取空间「互动消息列表」和「全部未删除说说」两套接口最后把结果落成 Excel、HTML 和本地图片。扫码登录二维码直接渲染在终端里全程不需要在任何输入框里敲密码双源抓取消息列表含好友评论说说列表含「仅自己可见」的原创两路数据合并去重、互相补齐分页加磁盘缓存每页 30 条说说原始 JSON 写入缓存目录中断后重跑走缓存不重新请求多格式导出Excel 供分析、HTML 供浏览、图片按内容命名存本地请求限速每抓一批消息固定休息几秒把被风控的概率压到最低从装到跑通三步完成首次备份第一步装依赖。三条命令requirements.txt 锁了全部版本号pandas、openpyxl、pyzbar 这些都在里面git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory pip install -r requirements.txt第二步运行并扫码。Linux/macOS 上如果提示找不到 zbar 共享库按程序给出的提示用包管理器装上 zbar 即可pyzbar 解码二维码依赖它。然后python main.py终端出现二维码后用手机 QQ 扫一下完成登录登录态会按账号存到 resource/user/第二次运行直接选已登录的 QQ 号不用重扫。第三步看结果。抓取速度取决于你的说说总量千条级别需要等一段时间可以挂着不管跑完程序会自动打开结果目录手动确认一下也行ls resource/result/它为什么靠谱扫码登录设计与数据完整性保障登录机制密码不落盘凭证按账号隔离。设计选择是走官方 ptlogin2 扫码流程终端先拉取二维码图片本地解码成 ASCII 二维码打印出来再轮询 ptqrlogin 查状态登录成功后用 check_sig 换到 uin、skey、p_skey 这组 cookie。为什么选这条路——QQ 密码从头到尾不进任何输入框工具落盘的只有会话凭证文件泄漏的影响面也只有一个账号的会话随时重扫就能换凭证。对你的实际影响反复使用零成本多账号可以轮流备份且互不覆盖。核心逻辑在 util/LoginUtil.py 中实现。数据完整性双源补齐加信号级断点。几千条说说的分页抓取网络抖动是必然事件不做保护就是中断一次重跑一次。项目做了两件事一是双源抓取——消息列表接口拿不到「仅自己可见」的原创说说列表接口拿不到好友评论util/GetAllMomentsUtil.py 先把未删除说说列表按 30 条一页完整拉下来再和消息列表按说说文本内容去重后合并两路数据互相补位二是信号处理——main.py 入口注册了 SIGINT/SIGTERM 的 handlerCtrlC 时先把已抓到的数据落盘再退出代价最多丢当前页。同时每页原始 JSON 写进 resource/fetch-all/{QQ号}/ 缓存重跑直接读缓存。备份产出目录结构说明结果目录按 QQ 号切分一个账号一个目录多账号备份互不干扰resource/result/{QQ号}/ ├── {QQ号}_全部列表.xlsx # 全部动态含好友评论 ├── {QQ号}_说说列表.xlsx # 本人原创说说 ├── {QQ号}_转发列表.xlsx # 本人转发内容 ├── {QQ号}_留言列表.xlsx # 好友留言 ├── {QQ号}_其他列表.xlsx # 其他类型动态 ├── {QQ号}_好友列表.xlsx # 好友及空间主页链接 ├── {QQ号}_说说网页版.html # 还原的空间时间线页面 └── pic/ # 全部说说配图Excel 按内容类型各一份列是时间、文本、图片链接、评论适合筛选和统计HTML 文件直接用浏览器打开就是时间线点图片跳原图pic 目录下的图按说说内容命名适合本地归档。谁在用它、怎么用的如果有人只是想把毕业那年的图拉下来做纪念册他会按发布时间筛 pic 目录时间列在 Excel 里现成可查。如果有人想拿自己的历史数据练 pandas全部列表的列结构已经规整直接 groupby 年份就能看各年发帖频率和互动量。如果是社媒研究者说说文本、评论内容、时间戳、评论者 QQ 号都是结构化字段可以直接当干净语料做主题演化或互动模式分析好友列表还顺手提供了关系图的节点数据。常见备份失败排查二维码在终端里显示成乱码方块多半是终端字体或编码问题换到支持 UTF-8 的现代终端Windows Terminal、iTerm2并把字体设为等宽即可。启动时报「无法找到 zbar 共享库」是因为 pyzbar 只是封装层解码二维码依赖系统级 zbar按程序打印的提示装 zbarRPM 系统用 dnfmacOS 用 brew装完重跑就行。某些明明存在的说说抓不到先确认是不是设置了「仅自己可见」或后来被删掉了——工具的抓取范围是平台可见数据这类缺失是平台可见性问题不是程序 bug。个别图片下载失败通常是 CDN 链接过期或网络抖动程序会打印失败请求的状态码可以拿着 Excel 里的图片链接手动补下。自定义抓取参数、定时执行与数据二次分析想调抓取节奏的话main.py 里每批消息后的 3 秒休息和 util/GetAllMomentsUtil.py 里每页 30 条都是写死的常量按网络情况自行放宽。想定期跑的话登录态存在 resource/user/ 下首次扫码之后可以直接复用会话配合系统定时任务就能实现周期性备份。如果只要自己的说说道原图和 Markdown、不要好友评论用另一个入口 fetch_all_message.py它只走「未删除说说」接口产出在 resource/fetch-all/ 下。导出后的 Excel 也可以直接用 pandas 做年度发帖频率统计不用再写解析逻辑。项目接下来往哪走README 里作者自述「代码有很多疏漏」改进空间是明确的。从现在的结构看最值得做的三件事是把串行分页改成并发请求压缩总时长把断点缓存从整文件粒度细化到分页粒度以及把抓取流程封装成可被其他脚本调用的模块。clone 下来跑一遍扫码是一分钟的事抓取是几个小时的事但你的数据从此在本地有了第二份。【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考