从 QQ 聊天记录文件中提取聊天信息,仅支持 txt 格式的聊天记录。
现在 NTQQ 不支持导出文件,可以使用我写的一个小脚本来通过 OneBot 协议获取消息,逻辑比较简单就不单独���仓库了。
使用 pip 安装,要求 Python 3.9 或以上版本。
> pip install -U qq-chat-history最简单的启动方式如下,它会自动在当前目录下创建 output.json 进行输出(如果安装到虚拟环境请确保已激活)。
> qq-chat-history /path/to/file.txt启动时输入 --help 参数查看更多配置项。
> qq-chat-history --help或者,可以作为一个第三方库使用,如下:
import qq_chat_history
lines = '''
=========
假装我是 QQ 自动生成的文件头
=========
1883-03-07 11:22:33 A<someone@example.com>
Text A1
Text A2
1883-03-07 12:34:56 B(123123)
Text B
1883-03-07 13:24:36 C(456456)
Text C
1883-03-07 22:00:51 A<someone@example.com>
Text D
'''.strip().splitlines()
# 这里的 lines 也可以是文件对象或者以字符串或者 Path 对象表示的文件路径。
for msg in qq_chat_history.parse(lines):
print(msg.date, msg.id, msg.name, msg.content)注意 parse 方法返回的是一个 Body 对象,一般以 Iterable[Message] 的形式使用。当然 Body 也提供了几个函数,虽然一般也没什么用。
-
如果当作一个第三方库来用,例如
find_xxx方法,可以从数据中查找指定id或name的消息;save方法可以将数据以yaml或json格式保存到文件中,虽然这个工作一般都直接以CLI模式启动来完成。 -
函数
parse可以处理多样的类型。Iterable[str]:���代每行的可迭代对象,如list或tuple等。TextIOBase:文本文件对象,如用open打开的文本文件,或者io.StringIO都属于文本文件对象。str,Path:文件路径,如./data.txt。
这些参数都将以对应的方法来构造
Body对象。