版权声明: 本文介绍的项目基于 MIT 开源协议。保留原作者版权声明。原项目地址: https://github.com/LibraHp/GetQzonehistory

前言

在这个数字化时代,QQ空间承载了我们太多的青春回忆。无论是早期的说说、日志,还是照片、留言,都是我们珍贵的数字资产。然而,随着时间推移,这些内容可能会因各种原因丢失。如何高效地备份和保存这些珍贵的回忆,成为了很多人关心的问题。今天要介绍的这个开源项目,就能很好地解决这个需求。

正文

项目介绍

GetQzonehistory 是一个基于 Python 的 QQ 空间数据获取工具,它能够帮助用户轻松下载自己的 QQ 空间历史数据。主要功能包括:

  • 自动登录QQ空间
  • 批量下载说说内容
  • 获取点赞和评论信息
  • 导出数据为易读格式

该项目采用了 Python 的 requests 库进行数据请求,通过模拟浏览器行为来获取数据,实现了无需浏览器即可获取数据的功能。相比其他类似工具,它的特点是:

  1. 使用简单,配置门槛低
  2. 获取速度快,支持批量下载
  3. 数据完整,包含互动信息
  4. 输出格式友好,易于存档

登录界面

在这里插入图片描述

记录获取

在这里插入图片描述
在这里插入图片描述

项目说明

使用环境要求:

  • Python 3.6 及以上版本
  • requests 库
  • configparser 库

安装步骤:

  1. 克隆项目到本地
git clone https://github.com/LibraHp/GetQzonehistory.git
  1. 安装依赖
pip install -r requirements.txt
  1. 配置文件修改:
    打开 config.ini 文件,填入以下信息:
    • QQ号
    • QQ密码
    • 要获取的数据时间范围

使用方法:

  1. 运行主程序
python main.py
  1. 按照提示输入验证信息
  2. 等待数据获取完成
  3. 在 output 文件夹查看结果

注意事项:

  • 请确保网络环境稳定
  • 建议使用自己的QQ号登录
  • 获取大量数据时注意时间间隔
  • 注意遵守QQ空间使用规范

目录结构

project/
├── resource/                # 资源目录
│   ├── config/              # 配置目录,文件保存位置配置
│   │   └── config.ini
│   ├── result/              # 导出结果的目录,格式为“你的qq.xlsx”
│   │   ├── ...
│   │   └── ...
│   ├── temp/                # 缓存目录
│   │   ├── ...
│   │   └── ...
│   ├── user/                # 用户信息
│   │   ├── ...
│   │   └── ...
├── util/                    # 单元工具目录
│   ├── ConfigUtil.py        # 读取配置
│   ├── GetAllMomentsUtil.py # 获取未删除的所有说说
│   ├── LoginUtil.py         # 登录相关
│   ├── RequestUtil.py       # 请求数据相关
│   └── ToolsUtil.py         # 工具
├── main.py                  # 主程序入口
├── fetch_all_message.py     # 主程序入口
├── README.md                # 项目说明文件
├── requirements.txt         # 依赖项列表
└── LICENSE                  # 许可证文件

核心代码解析

以下是项目中几个关键部分的代码实现:

  1. 登录认证部分
def login(self):
    self.session = requests.Session()
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...'
    }
    self.session.headers.update(headers)
    
    # 获取登录参数
    self.get_login_params()
    
    # 模拟登录过程
    login_url = "https://qzone.qq.com"
    response = self.session.get(login_url)
    
    # 验证登录状态
    if self.check_login_status():
        print("登录成功")
        return True
    return False
  1. 数据获取核心逻辑
def get_history_data(self, start_time, end_time):
    page = 1
    while True:
        url = f"https://user.qzone.qq.com/proxy/domain/taotao.qq.com/cgi-bin/emotion_cgi_msglist_v6"
        params = {
            'uin': self.qq,
            'pos': (page - 1) * 20,
            'num': 20,
            'format': 'json',
        }
        
        response = self.session.get(url, params=params)
        data = response.json()
        
        if not data['msglist']:
            break
            
        self.process_data(data['msglist'])
        page += 1
  1. 数据处理与保存
def process_data(self, msg_list):
    for msg in msg_list:
        item = {
            'time': msg['created_time'],
            'content': msg['content'],
            'comments': msg.get('comments', []),
            'likes': msg.get('likes', [])
        }
        
        self.save_to_file(item)

总结

GetQzonehistory 项目为我们提供了一个简单易用的QQ空间数据获取工具。它的主要优势在于:

  1. 操作简单,无需复杂配置
  2. 数据获取完整,包含互动信息
  3. 代码结构清晰,易于维护和扩展
  4. 输出格式规范,便于后续处理

使用建议:

  1. 建议分批次获取数据,避免一次性获取太多
  2. 可以根据自己需求修改保存格式
  3. 注意及时备份已获取的数据
  4. 遵守平台规则,合理使用工具

后续改进空间:

  1. 添加图片内容的获取功能
  2. 优化数据导出格式
  3. 增加失败重试机制
  4. 提供更多自定义选项

项目地址: https://github.com/LibraHp/GetQzonehistory

获取完整安装包&技术交流

看到这里,相信大家对这个项目已经有了清晰的认识。如果你也想保存自己的QQ空间回忆,我整理了一份详细的安装教程和常见问题解答文档,包括详细的环境配置指南、常见报错解决方案、实用小技巧分享、持续更新的项目动态等

欢迎关注我的公众号【LSKDROIT】或扫描下方二维码,回复 关键词 “QQ空间” 获取安装包。我会在公众号持续分享类似好用的工具和编程技巧,帮助大家提高开发效率!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐