QQ空间说说批量导出实测扫码登录到Excel归档完整流程【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory翻完几千条老说说网页端一页页点到手软截图又存不成结构化数据。GetQzonehistory 这个开源工具做的就是 QQ空间说说批量导出扫码登录一次自动把账号下能拿到的历史说说、图片、评论拉下来存成本地 Excel 和图片文件夹。本文按实际跑通流程拆解顺带说清它抓不到什么。一句话搞懂它它是纯本地运行的命令行工具不碰密码扫码登录 QQ空间然后走消息列表 说说列表两条线把数据抓全最后统一落到本地目录。数据走向如下输入处理输出手机QQ扫码授权分页抓取消息列表和未删除说说解析、去重、分类resource/result/你的QQ/下多个 Excel、图片文件夹、HTML 网页版先说结论它只导出可见范围内的内容不替你恢复已删除说说也不支持他人账号。动手跑一遍1. 环境准备依赖见 requirements.txtPython 3.12 下可正常建虚拟环境git clone https://gitcode.com/GitHub_Trending/ge/GetQzonehistory cd GetQzonehistory python -m venv myenv source myenv/bin/activate pip install -r requirements.txt坑在 LoginUtil.py二维码要本地解码成终端 ASCII 码依赖 pyzbar 底层的 zbar 库。没装 zbar 程序会直接退出并提示安装命令Linux 执行sudo dnf install -y zbarmacOS 用 Homebrew 装 zbar 后按提示建软链即可。2. 扫码登录python main.py终端会先列出resource/user/里已缓存的登录账号让你选输入 0 才重新扫码。首次运行会打印一个 ASCII 二维码用手机QQ扫完cookie 落盘缓存。坑cookie 是明文存在 resource/user/ 下按 QQ号命名。多账号混用一台机器时注意别删错文件终端窗口别关太早轮询扫码结果需要时间。3. 执行抓取登录后程序先二分探测消息总量约 20 多次请求两三分钟再按每批 10 条翻页抓取每批请求间固定 sleep 5 秒、批间再歇 3 秒进度条用 tqdm 显示。抓完消息列表后会自动走第二轮调 GetAllMomentsUtil.py 把未删除的可见说说含 2014 年之前的老数据按每页 30 条补齐再与消息列表去重合并。坑这是慢工程。按 8 秒一批算1000 条消息约 13 分钟3000 条要 40 分钟往上。中途按 CtrlC 不会白跑——main.py 注册了信号处理会先把已抓到的数据落盘再退出。4. 查看产物导出成功后程序会自动打开结果目录文件都在resource/result/你的QQ/下文件内容QQ_全部列表.xlsx消息列表可见说说合并后的全量数据时间/内容/图片链接/评论QQ_说说列表.xlsx、QQ_转发列表.xlsx、QQ_留言列表.xlsx、QQ_其他列表.xlsx按内容分类的子表QQ_好友列表.xlsx出现过的昵称、QQ、空间主页pic/目录说说图片按内容命名、截断到 40 字符重名加时间戳QQ_说说网页版.html还原空间样式的 HTML方便直接浏览它是怎么做到的扫码登录而不碰密码。问题是 QQ 登录链路签名复杂输密码方案既危险又容易被风控。方案是走官方 ptqr 扫码流程请求二维码、本地解码成终端字符画、轮询登录状态拿到 cookie再由 cookie 里的 p_skey 算出接口要求的 g_tk 签名bkn 算法。效果是不存密码、cookie 可缓存复用二次运行不用重扫。总量未知时先二分再翻页。问题是消息接口不给总数硬扫到空页太慢。方案是 RequestUtil.py 里get_message_count用二分法假设上界 1000 万每次探一个 offset 看返回里有没有li24 次左右收敛到真实总量。之后再按 10 条一批顺序翻批间 sleep 5 秒全程限速。效果是对服务器压力小老账号跑完全程基本不触发风控。双数据源补齐 清洗分类。问题是消息列表里不含仅自己可见之外的全部历史纯靠它会有缺口。方案是第二条线直接调空间说说接口每页 30 条拿未删除可见说说再和消息列表按内容互查去重合并原始 HTML 用 BeautifulSoup 解析chardet 探测编码时间统一成年-月-日 时:分格式QQ 表情码替换成 img 标签。效果是 2014 年前的老说说也能进 Excel分类表之间不重不漏。实测结果与边界以一千多条说说的账号为例登录探测加消息抓取约 15 分钟可见说说补齐 1–2 分钟图片下载与写 Excel 视图片数量再加几分钟全程内存占用平稳无并发、无压力。速度瓶颈就是那个 8 秒/批的限速想快只能改代码里的 sleep风险自担。它做不到、或数据会缺失的地方提前说清已删除的说说拿不到。未删除的可见说说接口只补可见数据删了就没了可见范围受限的内容拿不到比如设置为仅自己可见但不在消息列表里的说说README 也明确承认消息列表里没有的就抓不到视频只存封面图链接不下载视频本体评论只抓接口返回的部分不是完整楼中楼接口是逆向网页版行为QQ 侧页面结构一改版就可能解析失败需要等作者跟进。适合谁不适合谁适合想给自己账号做一次性完整归档的普通用户数据全落本地、不经第三方需要结构化数据Excel 带时间、评论、图片链接做二次筛选或导 PDF 的人有多年老数据、想顺手把 2014 年前内容也捞回来的老空间用户。不适合想批量导出他人空间内容的人工具只认登录态对应的账号需要恢复已删除说说的人这条边界谁也无法绕过追求图形界面、点按钮就完成的场景它全程是终端命令行。进阶玩法 常见问题改存储位置QQ空间怎么配置的常见疑问答案在 ConfigUtil.py 读取的resource/config/config.ini改temp、user、result三项路径即可重启生效中断与续跑CtrlC 会保存已抓数据但重新运行会从头抓没有断点续传想省时间就少中断一次跑完只要 Markdown不想用 Excel 的话fetch_all_message.py 是独立入口把同样的数据解析成 Markdown 输出图片仍是链接隐私全程本地处理cookie 以明文存在resource/user/用公共机器时注意删掉跑失败了先看哪里报错无法找到 zbar 共享库就是 zbar 没装登录失败提示重新扫码时先删resource/user/下对应文件再试排除旧 cookie 失效。写在最后一个扫码、一次等待、一目录 Excel 加图片这就是它的全部成本。想上车的话先去仓库 issues 看一眼最新报错讨论再决定zbar 和接口时效这两处最容易踩。【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考