GetQzonehistory:一次运行,把多年QQ空间说说、图片评论备份成六张Excel表
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
想翻找几年前的那条说说,得在空间消息列表里一页页往前翻,翻到一半可能就放弃了。GetQzonehistory 接手这种体力活:扫一次码,它把历史说说、配图、评论自动抓下来,存成 Excel 表格和网页,最后留给你一份完整的本地档案。
先看看这个工具能给你什么
GetQzonehistory 是一个QQ空间历史说说的本地备份工具。跑完一次,你手里会多出:
- 六张 Excel 表:全部列表、说说列表、转发列表、留言列表、其他列表、好友列表
- 一个
pic/图片文件夹:全部配图下载到本地,按说说内容命名 - 一份
说说网页版.html:带头像、时间、配图、评论的网页存档,浏览器直接打开 - 如果还需要高清图文档,另有一个独立脚本 fetch_all_message.py 可输出带本地图片的 Markdown
适合两类人:一是积累了大量说说、想要一份完整本地副本的人;二是想拿旧说说做统计(比如按年份看发布频率、找互动最多的好友)或者做电子纪念册的人。
首次把 GetQzonehistory 跑起来
前提只有一条:电脑上装好 Python 3.9 及以上版本。
第一步:拿到项目
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory跑完你会看到:main.py、fetch_all_message.py两个入口脚本,requirements.txt 依赖清单和util/工具目录。
第二步:建一个独立运行环境
python -m venv myenv # Windows: myenv\Scripts\activate # macOS / Linux: source myenv/bin/activate跑完你会看到:终端命令行开头多了一个(myenv)前缀,说明环境已激活。
第三步:安装依赖
pip install -r requirements.txt跑完你会看到:pandas、openpyxl、requests、Pillow、pyzbar、qrcode 等十一个包依次安装完成。
第四步:启动主程序
python main.py跑完你会看到:终端先打出一个登录二维码,用手机 QQ 扫码确认;随后程序开始分批抓取并显示进度条;跑完后自动打开结果文件夹,并依次报出"共有 N 条消息""最早一条说说发布于……""好友列表共 N 个""图片列表共 N 张"。
登录状态有一层缓存:凭证会以 QQ 号命名存在resource/user/目录下,下次再运行会列出已登录账号让你选序号,输入 0 才是重新扫码。多账号来回切换不用反复扫。
跑完得到的东西:结果文件夹逐条看
所有结果统一放在resource/result/你的QQ号/目录:
你的QQ号/ ├── 你的QQ号_全部列表.xlsx # 时间、内容、图片链接、评论 ├── 你的QQ号_说说列表.xlsx # 我发布的 ├── 你的QQ号_转发列表.xlsx # 我转发的 ├── 你的QQ号_留言列表.xlsx # 我留言的 ├── 你的QQ号_其他列表.xlsx # 好友的互动 ├── 你的QQ号_好友列表.xlsx # 昵称、QQ、空间主页 ├── 你的QQ号_说说网页版.html # 离线浏览存档 └── pic/ # 全部配图,按内容命名- 全部、说说、转发四列表结构相同,都是时间、内容、图片链接、评论四列;留言和其他表只有三列,不带评论。
- 好友列表三列是昵称、QQ、空间主页,来自消息列表中出现过的全部好友信息,顺手就能导出。
- 图片统一放进
pic/,按说说内容命名,文件名超过 40 字符自动截断,重名自动加时间戳。 - 网页版把说说和转发两套数据按时间从新到旧合并排版,配深色背景样式,直接当纪念册翻。
- 中途按 Ctrl+C 中断,已抓到的数据也会先落盘,不白跑;结果和缓存放哪里可以在
resource/config/config.ini里改。
原理拆解:一次照片档案馆整理的全过程
把整个流程想象成档案馆整理旧照片档案,分四步走:
领取取件凭证。扫码登录相当于在窗口出示证件,平台发给你一串凭证(cookie)。程序把它写进本地,之后每一批请求都凭它通行,凭证过期才需要重新扫码。
逐架取胶卷。历史消息通道每批取 10 条,每批结束歇 3 秒再取下一批,请求节奏控制在普通用户水平。程序还会先探明消息总条数,让进度条有总数可显示。
核对两套目录。可见说说通道每页取 30 条,取完后与消息列表交叉比对、去掉重复项;只在这条通道里的旧内容(包含 2014 年之前)保留下来,逻辑见 util/GetAllMomentsUtil.py。
分拣上架。数据按归属分进六张表,图片下载进pic/,说说加转发再合并渲染出网页版——也就是上面那个目录结构。
它抓不到的部分:工具边界在哪
先说清一点:仅自己可见的说说、已删除的说说,都拿不到。消息通道只能取到过消息列表里的记录,可见通道只能取到未删除的说说;两条通道都覆盖不到的内容,这次运行就不会有。
其次,它只处理你自己的账号,不抓取别人的空间。
如果你嫌旧内容偏少,有个替代方案:单独运行 fetch_all_message.py,它直接走可见说说通道,把所有未删除的说说(含 2014 年之前的)连同高清图拉下来,在resource/fetch-all/下生成一篇带本地图片引用的所有可见说说.md,适合直接发到博客。两条通道叠加后,未删除说说的覆盖率已经相当高。
遇到问题先看这里
- 停在"二维码认证中"不动了 二维码过期或网络不稳导致。重新运行程序生成新二维码,顺便确认系统时间没有漂移。
- 启动时报找不到 zbar 共享库 二维码解码依赖的 pyzbar 需要系统先装 zbar。Linux 上基于 RPM 的系统执行
sudo dnf install -y zbar;macOS 上程序会检测 Homebrew,回答 y 后自动安装并创建符号链接。 - pip 安装依赖失败 大多是网络问题,给 pip 指定一个国内镜像源,重新执行
pip install -r requirements.txt即可。 - 抓取中途提示请求超时或失败 个别批次会被自动跳过并继续,别急着重跑;整体中断时已抓数据会自动保存,等网络平稳再跑一次补上就行。
- 想换账号,或者登错账号了 重新运行主程序,在已登录账号列表里输入 0 即可重新扫码,之后选正确的序号。
说说躺进自己硬盘上的表格和图片文件夹,才是真正随时可查、随意分析、能打印成册的状态。照例提醒:GetQzonehistory 仅供个人回忆保存与学习使用,请遵守相关法律法规与平台条款,只备份自己账号的数据,尊重他人隐私,不要将内容用于传播或商业用途。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考