QQ Chat Exporter 是为解决QQ用户难以导出聊天记录而开发的创新工具。它提供了以下核心功能:
- 🖥️ 智能窗口识别:自动定位并聚焦QQ聊天窗口
- 💬 精准消息提取:准确识别并复制聊天消息内容
- 👥 用户区分:智能区分自己和他人的消息
- 📊 结构化存储:将导出的消息保存为易处理的JSON格式
- 🖱️ 自动滚动:模拟鼠标滚动,获取更多历史消息
- 🛡️ 安全操作:内置保护机制,避免误触关键区域
- Python 3.7+
- Windows 操作系统
- 建议 NT QQ 版本 9.9.10-23873 (64位)
-
克隆仓库(或者直接下载仓库打包的zip并解压):
git clone https://github.com/shuakami/qq-chat-exporter.git
-
进入项目目录:
cd qq-chat-exporter
-
安装依赖:
pip install -r requirements.txt
-
配置消息颜色(在
qq.py
中):my_message_color = (0, 153, 255) # 你的消息颜色 other_message_color = (241, 252, 247) # 别人消息颜色
-
运行
fuck_down_test.py
得到不可点击区域 -
把不可点击区域参数替换到
qq.py
# 不可点击区域 # 此部分请执行fuck_down_test.py获取并覆盖下面的部分 avoid_area = [(1248, 589), (1299, 589), (1249, 611), (1299, 613)]
-
运行主脚本:
python qq.py
确保您的系统满足以下要求:
- Windows 操作系统(推荐 Windows 10 或更高版本)
- Python 3.7 或更高版本
- 稳定的网络连接(用于安装依赖)
克隆仓库后,我们需要安装必要的Python库。requirements.txt
文件包含了以下依赖:
pyautogui==0.9.53 # 用于模拟鼠标和键盘操作
opencv-python==4.5.5.64 # 用于图像处理和识别
pillow==8.4.0 # 用于图像操作
pywin32==301 # 用于Windows系统交互
numpy==1.21.5 # 用于数值计算
运行 pip install -r requirements.txt
会自动安装这些库。
在 qq.py
文件中,您需要设置两种颜色:
my_message_color = (0, 153, 255) # 蓝色
other_message_color = (241, 252, 247) # 浅绿色
这些RGB值决定了脚本如何识别不同的消息气泡。您可能需要根据您的QQ主题进行调整。
运行 fuck_down_test.py
并按提示操作。这个脚本会帮助您定位QQ窗口中的敏感区域,防止脚本误触发不必要的操作。
操作步骤:
- 运行脚本
- 在QQ窗口中,从左上角开始,依次右键点击敏感区域的四个角落
- 脚本会输出坐标,将这些坐标更新到
qq.py
中的avoid_area
变量
准备就绪后,运行 python qq.py
。脚本会自动:
- 定位QQ窗口
- 识别并复制消息
- 将消息保存到
training_data.json
文件
- 运行过程中请勿操作电脑,以免干扰自动化流程
- 如遇特殊内容(如图片、文件)导致中断,可手动点击其他区域继续,或按 Ctrl+C 重新开始
- 建议使用纯色或与消息颜色反差较大的壁纸,以提高识别准确率
-
Q: 脚本无法识别QQ窗口怎么办? A: 确保QQ窗口处于活动状态且未最小化。尝试重新启动QQ和脚本。
-
Q: 消息颜色识别不准确怎么解决? A: 微调
my_message_color
和other_message_color
的RGB值。可以使用屏幕取色工具获取精确颜色。 -
Q: 如何处理大量历史消息? A: 脚本设计为自动滚动并处理消息。对于特别长的聊天记录,可能需要多次运行脚本。
-
Q: 执行过程中脚本突然停止怎么办? A: 这可能是因为遇到了图片、特殊聊天记录等干扰项。请手动点击聊天窗口的其他区域继续,或按 Ctrl+C 终止脚本并重新开始。
-
Q: 为什么要执行 fuck_down_test.py? A: 这个脚本帮助确定不可点击区域的坐标。这些区域通常包含可能干扰导出过程的元素。如果你不知道这个元素是什么,请看仓库内的
dist/fuck_down.png
-
Q: 壁纸为什么会影响脚本运行? A: 脚本通过识别特定颜色来区分消息。如果壁纸颜色与消息气泡颜色相近,可能会导致误识别。建议使用与消息颜色反差较大的纯色壁纸。
-
Q: 在执行过程中可以放手不管吗? A: 在执行过程中,你必须看着他执行。因为有时候他会点图片、聊天记录等等这种会打断进程的东西。你需要点别的地方继续,或者Ctrl+C重开。
-
Q: 如何确保所有消息都被正确导出? A: 脚本会自动处理可见的消息,但可能无法处理被隐藏的内容。建议在开始导出前,手动滚动到想要开始的位置,并在脚本完成后检查输出文件。
-
Q: 导出的 JSON 文件如何使用? A: 导出的 JSON 文件包含结构化的聊天数据,可以用于数据分析、备份或导入到其他应用程序。您可以使用 Python 的 json 模块或其他 JSON 处理工具来读取和处理这些数据。
我们欢迎并鼓励社区贡献!如果您有任何改进意见或发现了bug,请:
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/AmazingFeature
) - 提交您的更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 开启一个 Pull Request
为了维护项目的质量和一致性,请遵循以下准则:
- 遵守 PEP 8 编码规范
- 为新功能编写单元测试
- 更新文档以反映您的更改
- 保持提交信息简洁明了
本项目采用 MIT 许可证。查看 LICENSE 文件以获取更多信息。
- 初始版本发布
- 实现基本的QQ聊天记录导出功能
- 添加自动滚动和消息识别功能
QQ Chat Exporter 是一个开源工具,旨在帮助用户导出个人聊天记录。使用本工具时,请注意以下事项:
-
合法使用:本工具仅供个人合法使用。用户应确保拥有导出聊天记录的权利,并遵守所有适用的法律法规。
-
隐私保护:请尊重他人隐私,不要在未经许可的情况下导出或分享他人的聊天记录。
-
数据安全:导出的聊天记录可能包含敏感信息。用户有责任妥善保管和使用这些数据。
-
免责声明:本项目开发者和贡献者不对使用本工具导致的任何直接或间接损失负责,包括但不限于数据丢失、隐私泄露或法律纠纷。
-
非官方工具:QQ Chat Exporter 不隶属于腾讯公司或 QQ,是一个独立的第三方工具。
-
风险承担:使用本工具即表示您同意自行承担使用过程中的所有风险。
-
版权声明:本工具不会存储或传输任何聊天内容,仅在用户本地设备上运行。用户应确保遵守相关版权法。
-
技术限制:由于 QQ 可能进行更新,本工具的功能可能会受到影响。我们不保证工具在所有情况下都能正常工作。
使用本工具即表示您已阅读、理解并同意遵守以上免责声明。如果您不同意这些条款,请不要使用本工具。
QQ Chat Exporter 目前处于积极开发阶段。我们定期发布更新和bug修复。欢迎关注本项目以获取最新动态。
喜欢这个项目?请给我们一个 ⭐️!