GetQzonehistory:15分钟把QQ空间十年历史说说完整备份到本地,含6张表格和离线网页
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
凌晨刷QQ空间主页,你突然想不起来自己第一条说说是什么时候发的。GetQzonehistory 是一款免费开源的 QQ 空间历史说说备份工具:扫码登录、自动抓取全部历史说说、转发与评论,并整理成本地 Excel 表格和离线网页。照本文操作,大约 15 分钟能跑通第一次备份。
交付物清单:GetQzonehistory 跑完一次能拿到什么
进度条走完后,你要的东西全在resource/result/你的QQ号/里,先看清楚结果再动手。
QQ号_全部列表.xlsx:所有抓取到的消息汇总,列为时间、内容、图片链接、评论QQ号_说说列表.xlsx:你自己发布的说说,不含他人动态QQ号_转发列表.xlsx:转发过的每一条内容QQ号_留言列表.xlsx:空间留言板的互动记录QQ号_其他列表.xlsx:朋友在你空间发布的动态QQ号_好友列表.xlsx:昵称、QQ 号、空间主页地址三列QQ号_说说网页版.html:说说与转发按时间倒序排好的网页,头像、昵称、正文、配图、评论区齐全,QQ 表情做了还原,离线双击即可打开pic/目录:说说配图自动下载,文件名直接取自说说内容
每一行都带精确到秒的发布时间,图片地址独立成列,评论拆成时间、内容、昵称、QQ 号四个字段,方便二次加工。
GetQzonehistory 安装与首次运行步骤:从零到第一次导出
不用手动配任何环境参数,命令逐行照抄即可。
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory python -m venv myenv # Windows: .\myenv\Scripts\activate macOS/Linux: source myenv/bin/activate pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt python main.py运行python main.py后,终端会打印出登录二维码,用手机 QQ 扫一下即可,全程不碰密码。登录成功后程序按每批 10 条拉取历史消息,带进度条;结束后自动落盘表格、下载图片并打开导出文件夹,终端还会汇总总条数、最早一条说说的时间、各类列表数量。已登录过的账号下次运行会先让你从列表里选,不用反复扫码。
功能深挖:GetQzonehistory 四个关键设计
代码并不复杂,但有几处意图明确,看懂了以后想改哪里心里都有数。
为什么从两个数据源同时抓。历史消息列表里既有你的动态也有朋友的,但列表会随新互动往前推移。util/GetAllMomentsUtil.py里还有一条路:逐页拉取"未删除的可见说说",和消息列表去重后合并。两条线交叉补位,档案才更接近完整,2014 年之前的内容也走这条路。
为什么网页版可以离线打开。*_说说网页版.html由说说列表和转发列表两张表渲染,按时间倒序,还原头像、昵称、正文、配图与评论区。QQ 表情码被替换成图片标签,断网状态下也能当数字相册翻。
图片高清化与命名规则。抓取时工具自动把缩略图链接替换为高清图版本,避免整份档案全是模糊小图。文件名取自说说正文,先剔掉非法字符、超长截断到 40 位,撞名时追加时间戳,翻图库时不用对表。
Ctrl+C 中断保护。跑到一半想停,按 Ctrl+C,程序会先把已抓到的数据保存再退出。这段逻辑在main.py的signal_handler里,意味着中途终止也不会白跑。
⚠️ GetQzonehistory 常见报错与解决
以下四个现象覆盖了项目里最高频的提问,对号入座即可。
现象:启动时报"无法找到 zbar 共享库"。原因:二维码识别依赖 pyzbar,但系统级 zbar 库没装。 解决:Linux 上 Fedora 执行sudo dnf install -y zbar,Debian/Ubuntu 执行apt install libzbar0;macOS 在 util/LoginUtil.py 里做了引导,按提示可用 Homebrew 一键安装。
现象:二维码提示"已失效",或扫码后长时间没反应。原因:二维码有效期短,或电脑系统时间偏差导致认证超时。 解决:确认手机 QQ 在线、系统时间准确后重新运行生成新码;刚被安全策略拦截的话,等几分钟再试。
现象:进度非常慢,一批要等十几秒。原因:每抓完一批 10 条后有几秒停顿,是刻意压低请求频率、降低触发风控的概率。 解决:耐心等进度条走完即可;条数多也可以分多次运行,每次都会完整保存。
现象:抓到的说说数量比预期少。原因:"仅自己可见"的说说不在历史消息列表里,天然抓不到;网络抖动也可能漏掉个别批次。 解决:重新运行补抓,并留意控制台"获取消息失败:第 X 批次"这类报错提示。
📈 导出说说之后:三种把数据用起来的姿势
数据落到硬盘后,你可以只当档案存着,也可以让它继续干活。
用 Pandas 统计"每年说了多少话"。表格列名可直接解析:
import pandas as pd df = pd.read_excel('QQ号_说说列表.xlsx') df['时间'] = pd.to_datetime(df['时间'], format='%Y年%m月%d日 %H:%M:%S') print(df['时间'].dt.year.value_counts().sort_index())哪年话痨、哪年沉默一目了然,再往下做还能统计高频词和配图数量。
配置定期增量备份。Linux/macOS 在 crontab 里加一行、每月 1 号跑python main.py,Windows 用任务计划程序同样可行。之后发的每条新说说都会自动并入同一目录。
网页版当纪念册流转。把说说网页版.html拷进 U 盘,任何电脑双击就能翻;想永久留存,打印装订也可以。
本地处理与隐私边界:GetQzonehistory 哪些环节可以放心
这类工具会接触账号登录态,第一个该问的问题是:数据去哪了。
- 数据全部本地:抓取结果只写入本机
resource/result/目录,不上传任何第三方服务器 - 扫码免密:不收集 QQ 密码,Cookie 存在
resource/user/,不放心可随时删掉重新登录 - 源码可审查:登录、请求、说说解析分别在
util/LoginUtil.py、util/RequestUtil.py、util/GetAllMomentsUtil.py,逐步可核对 - 缓存按账号隔离:请求缓存按 QQ 号存放在
resource/fetch-all/下,多账号互不干扰
边界也要说清:项目自带免责声明,工具仅供学习与技术研究,不得用于商业或非法用途,只应备份你自己的空间内容,不采集他人数据。
GetQzonehistory 快速上手清单:四步完成首次备份
- 克隆仓库,按上文命令建虚拟环境、装依赖
- 运行
python main.py,手机扫码完成登录 - 等进度条走完,打开
resource/result/你的QQ号/核对六张表、网页版和图片目录 - 用得顺手的话给项目点个 Star,让更多想留住回忆的人能找到它
那些想不起来的说说,此刻多半还在服务器上,但没人担保明年还查得到。今晚花 15 分钟,就能把这份十年档案变成你自己的。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考