QQ空间历史说说怎么备份?用GetQzonehistory把十几年动态导出成Excel

发布时间:2026/9/20 13:01:48
QQ空间历史说说怎么备份?用GetQzonehistory把十几年动态导出成Excel
QQ空间历史说说怎么备份用GetQzonehistory把十几年动态导出成Excel【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory手机换过几轮QQ 空间消息列表翻到最早能看到 2008 年的记录——但账号换绑、空间改版这批老动态随时可能找不回来。开源工具 GetQzonehistory 用模拟登录的方式把历史说说连同评论、图片批量导出成 Excel 和网页版整份存在本地硬盘里。GetQzonehistory 是什么一个只做导出的 Python 小工具它做的事只有一件把你能看到的 QQ 空间历史内容拉下来整理成文件和图片。数据来自两个接口空间的消息列表含很早以前的记录以及当前可见、未删除的说说2014 年之前的也包括。适合两类人想把旧动态存成可检索的 Excel 的普通用户以及想研究这套抓取流程的开发者。一个诚实的边界消息列表里没有的内容它拿不到「仅自己可见」的说说和已删除的内容都不在范围内。工作原理从终端里的 ASCII 二维码到本地目录里的一堆文件整条链路长这样扫码登录(终端ASCII二维码) - 拿到cookies | -- 历史互动消息列表(二分查总数, 每10条一批翻页) -- 可见未删除说说接口(每页30条, 2014年前也覆盖) | 解析HTML / JSON, 合并去重 | 按内容分类(原创/转发/留言/好友) | 导出Excel 还原网页版HTML 下载图片 | resource/result/QQ号/登录在 util/LoginUtil.py 里完成从 p_skey 算出 g_tk、ptqrtoken 这两个签名参数请求 QQ 空间的登录接口拿到二维码再用 pyzbar 解码后以 ASCII 形式打印在终端。手机 QQ 扫码确认程序轮询到「登录成功」后取回 p_skey、skey 等 cookies存进resource/user/QQ号文件。下次运行直接从该文件读回登录态输入 0 才重新扫码。抓取分两路。消息列表在 util/RequestUtil.py先用二分查找快速定位消息总条数再每 10 条一批往后翻页每批之间停 3 秒给风控留点余量。可见说说在 util/GetAllMomentsUtil.py调 msglist 接口先取总数再每页 30 条按 offset 翻页拉下来的原始 JSON 缓存到resource/fetch-all/下重跑时直接读缓存。两路数据在 main.py 合并如果某条可见说说的内容已经出现在消息列表里就不重复添加反过来消息列表里那些说说本体已被删除、但互动记录还残留的条目也被保留下来。之后按内容分类——含「转发」进转发列表含「留言」进留言列表自己发的进说说列表别人发的进其他列表。分类完成后写 Excel、渲染 HTML、逐张下载图片。最小上手路径三条命令跑通其余都是等git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory pip install -r requirements.txt python main.py首次运行会在终端打印 ASCII 二维码用手机 QQ 扫确认登录后程序自动开跑。二维码几分钟内失效超时就重跑python main.py。如果 macOS 或 Linux 上提示找不到 zbar 共享库先装系统依赖Linux 可sudo dnf install -y zbarmacOS 用 Homebrew 装再回来重跑。登录态会记在本地之后启动不再扫码。跑完之后你的硬盘里多了什么所有产物落在resource/result/QQ号/目录resource/result/你的QQ号/ ├── 你的QQ号_全部列表.xlsx # 抓到的全部消息按时间排列 ├── 你的QQ号_好友列表.xlsx # 昵称、QQ、空间主页 ├── 你的QQ号_说说列表.xlsx # 自己发的原创 ├── 你的QQ号_转发列表.xlsx ├── 你的QQ号_留言列表.xlsx ├── 你的QQ号_其他列表.xlsx # 好友动态 ├── 你的QQ号_说说网页版.html # 时间线还原版 └── pic/ # 所有图片文件名取自说说内容Excel 统一四列时间、内容、图片链接、评论拿 pandas 打开就能分析。网页版 HTML 由 Excel 反渲染回来按时间倒序排列QQ 表情替换成图片图片 URL 里的缩略图参数/m/会被替换成/s/打开就是高清大图。往深里看两个入口、本地缓存与中断保护仓库里有两个入口main.py 走 Excel 加网页版这条主线fetch_all_message.py 是另一条独立路线把可见说说不分页地导出成 Markdown 文件并下载配图想要纯文本归档的可以直接用它。缓存有三处resource/user/存 cookiesresource/fetch-all/存接口返回的原始 JSONresource/config/config.ini定义这些目录路径。重跑时命中缓存可以跳过重复请求。节奏控制写在代码里消息接口每批 10 条、批间 sleep 3 秒说说分页之间 sleep 0.02 秒。开头那段「正在获取消息列表数量」的二分探测会多发几轮请求属于正常现象。中断保护main.py 注册了 SIGINT / SIGTERM 信号处理CtrlC 时先把已经抓到的数据落盘再退出不至于白跑半天。想改抓取节奏、目录结构看 util/ConfigUtil.py 和resource/config/config.ini即可。常见问题四个最容易卡住的点为什么导出的条数比我空间里看到的少「仅自己可见」的说说不在消息列表接口返回范围内这部分永远拿不到已删除的说说如果互动记录还残留在消息列表里反而能捞到。二维码失效或扫不出来直接重跑python main.py重新生成。终端字体换成等宽字体ASCII 二维码会整齐很多。macOS / Linux 报 pyzbar 相关错误pyzbar 只是解码库依赖系统的 zbar 动态库。先装好系统包Linux 用发行版包管理器macOS 用 Homebrew程序在 util/LoginUtil.py 里也内置了 Homebrew 安装的引导。跑多久算正常能不能中途停按每批 10 条、批间 3 秒估算几百条消息大约二十分钟起量大就要几小时。中途中断不会丢已保存的数据下次重跑还复用本地缓存。cookies 存在哪里安全吗登录态明文存在resource/user/QQ号文件里它等价于登录凭证别外传不用了直接删掉文件即可。结语先把自己账号的数据存下来这是个开源工具适合拿自己账号的数据做备份和学习研究别用于商业目的也别碰别人的数据。开跑之前确认三件事Python 3.8 以上、虚拟环境装好了 requirements.txt 里的依赖、Linux 系统装好了 zbar。然后python main.py等它跑完去resource/result/下验收。【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考