你的QQ空间说说正在消失,这份免费备份工具请收好
你的QQ空间说说正在消失,这份免费备份工具请收好
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
十几年前,你在QQ空间写下"今天天气真好"、上传那张青涩的合影时,一定没想过——这些说说有一天可能说没就没了。空间改版、相册迁移、接口调整,任何一个变化都可能让历史内容悄悄蒸发。GetQzonehistory就是为这件事而生的免费开源工具:只需手机扫码登录,它就能把QQ空间发布过的历史说说完整抓取下来,整理成Excel表格、离线网页和本地图片,让你的青春记忆永久保存在自己电脑里。
别急着看说明书,3步先拿到备份文件
工具类项目最怕"配置一小时、使用五分钟"。GetQzonehistory 的上手路径短得惊人,全程不需要注册任何账号,也不需要输入密码:
- 拿到代码:执行
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory并进入项目目录 - 安装依赖:运行
pip install -r requirements.txt(建议先在项目里建一个 Python 虚拟环境,后面会讲) - 跑起来:
python main.py,终端里会出现一个二维码,用手机QQ扫一下,程序就开始自动翻页抓取
之后你只需要盯着进度条走完。结束后它会自动打开导出文件夹——里面有按QQ号命名的多个Excel、一个网页版说说页面,还有一个装满了说说配图的pic/目录。从扫码到拿到全部历史数据,通常一杯茶的工夫。
它凭什么值得你信任?4个别人没有的细节
市面上打着"QQ空间备份"旗号的脚本不少,但大多要你交出密码、或者把数据先传到它们的服务器。GetQzonehistory 的思路完全不同:
- 只用官方二维码,密码从不落地:登录走的是QQ官方扫码通道,程序里只保存登录后的Cookie。下次运行还能直接选择已登录用户,免去重复扫码的麻烦
- 数据全程留在本机:抓取、解析、导出都在你自己的电脑上完成,不存在"数据被第三方转手"的隐患
- 连"仅自己可见"也尽量捞回来:它不满足于翻历史消息列表,还会调用说说接口尝试获取全部未删除的动态,包括早年那些别人看不到、但对你意义重大的内容
- 不只是备份,而是"可读"的备份:导出的HTML网页版还原了说说、配图、评论的完整结构,双击就能离线浏览,像是把你的空间整个"下载"了下来
上图是GetQzonehistory的整体工作流程,可以看到从登录验证到数据导出的每一步都有对应处理逻辑,异常中断时也会优先保存已抓取的数据
新手第一次完整跑通:从环境到成品的全流程
第一步:搭一个干净的运行环境
建议先建虚拟环境,避免依赖包和系统里其他Python项目互相打架:
cd GetQzonehistory python -m venv myenv # Windows 激活:myenv\Scripts\activate # macOS/Linux 激活:source myenv/bin/activate pip install -r requirements.txt依赖里主要是requests(网络请求)、BeautifulSoup4(解析页面)、pandas(生成Excel)和qrcode(渲染登录二维码),体积不大,装起来很快。
第二步:扫码登录,然后去干别的事
运行python main.py后,终端会先列出本机已保存的登录用户(如果有的话)。第一次使用会生成二维码,用手机QQ"扫一扫"确认即可。之后程序会通过二分查找估算消息总数,再按每批10条、每批间隔3秒的节奏翻页抓取——这个节奏是刻意放慢的,既保护你的账号,也避免给QQ服务器添堵。
第三步:验收你的"数字档案馆"
抓取结束,resource/result/你的QQ号/目录下会出现这么几样东西:
QQ号_说说列表.xlsx:原创说说的完整记录,每行包含时间、内容、图片链接和结构化评论QQ号_转发列表.xlsx/留言列表.xlsx/其他列表.xlsx:转发、留言等互动内容各自归档QQ号_好友列表.xlsx:抓取过程中顺带收集到的空间好友信息QQ号_说说网页版.html:把所有动态按时间倒序渲染成的离线网页,配图和评论一应俱全pic/:说说里的图片全部下载到本地,文件名自动取说说的关键词,重复图片还会自动加时间戳避免覆盖
这是GetQzonehistory的导出结构示意:所有成果都集中在以QQ号命名的文件夹里,Excel负责数据、HTML负责浏览、pic目录负责图片,一目了然
玩出花来:3个让备份更有价值的场景
场景一:用Excel做一份"我的青春年鉴"
说说列表.xlsx是结构化的,拿 pandas 几行代码就能分析出你哪年话最多、哪段时间在低谷:
import pandas as pd df = pd.read_excel("123456_说说列表.xlsx") df["年份"] = pd.to_datetime(df["时间"]).dt.year print(df["年份"].value_counts().sort_index()) # 每年发了多少条场景二:把网页版变成个人回忆站
生成的说说网页版.html是单文件离线页面,直接扔进U盘、传到个人博客、或者压进电子书都行。所有图片都在本地pic/目录,不依赖任何外链,断网也能看。
场景三:按需定制抓取范围
如果你只想备份某一年,可以在 main.py 的分页循环里加一行时间判断;觉得抓太快了,就把循环里的time.sleep(3)调大一点,改成5秒甚至10秒,更稳妥。想连未删除说说一起深挖,还可以单独运行 fetch_all_message.py,它会输出一份"所有可见说说.md"的Markdown文档。核心逻辑都在 util/ 目录下,想研究实现可以看 GetAllMomentsUtil.py 和 RequestUtil.py。
翻车现场自救指南:5个高频问题
Q:扫完码却说"登录失败"?多半是手机QQ没登录或网络不稳。确认手机QQ在线后重新运行,生成新二维码再扫一次。登录成功的状态会缓存在resource/user/里,重复运行可以直接选账号。
Q:抓到的说说不全,是不是漏了?消息列表本身有覆盖上限,早年内容可能要从可见说说接口补。确认程序完整跑完(包括"获取未删除说说"阶段),或者分几次运行,把每次结果合并。
Q:图片下载失败或文件名乱码?个别链接失效是正常的。失败的话可以直接从Excel里的"图片链接"列手动下载;文件名包含表情符号等特殊字符时会被自动清洗,这是防报错的设计,不是bug。
Q:pip install一直报错?先确认Python版本不低于3.6,再升级pip:python -m pip install --upgrade pip。网络受限时换国内镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt。
Q:中途不小心按了 Ctrl+C,数据会丢吗?不会。程序专门注册了中断信号处理,手动结束时会把已抓到的数据先保存再退出——这个细节很多同类工具都没有。
现在就动手,给回忆上把锁
备份的黄金时间永远是现在。你的操作清单只有四步:
- 克隆仓库到本地:
git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory - 建虚拟环境并安装依赖(见上文三步)
- 运行
python main.py,手机扫码完成登录 - 跑完检查
resource/result/你的QQ号/下的Excel、HTML和图片,复制到移动硬盘或加密网盘存第二份
想深入了解实现细节,可以翻翻 README.MD 里的目录结构说明,或者直接看 main.py 主流程和 util/ 下的登录、请求、工具模块。项目完全免费开源,代码可审查可修改。
那些年在空间里写下的心情、拍下的照片,不该只存在于平台的服务器里。花十分钟跑一次GetQzonehistory,把最珍贵的记忆存进自己手里——这大概是性价比最高的一次数据备份了。
【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考