用Python来查询聊天记录

用Python来查询聊天记录

代码

import re

def Start(First_Date, Second_Date, First_Name, Second_Name):
    First = re.compile(f'^{First_Date} .* {First_Name}$')  # 个人聊天
    Second = re.compile(f'^{Second_Date} .* {Second_Name}$')  # 群内匹配
    First_Count = 0  # 个人聊天条数
    Second_Cound = 0  # 群内条数
    with open(First_Dic, 'r', encoding='UTF-8') as f:
        for i in f:
            p = re.match(First, i)
            if not p == None:
                First_Count += 1

    with open(Second_Dic, 'r', encoding='UTF-8') as f:
        for i in f:
            p = re.match(Second, i)
            if not p == None:
                Second_Cound += 1
    return First_Count, Second_Cound

First_Date = r'2020-02-23'#第一聊天记录:检查的日期
Second_Date = r'2020-02-23'#第二聊天记录:检查的日期
First_Name = r'xxx'#群内昵称(备注昵称)
Second_Name = r'yyy'#群内昵称(备注昵称)
First_Dic = r'xxxx.txt'#聊天记录的位置
Second_Dic = r'xxxx.txt'#聊天记录的位置

First_Count,Second_Cound = Start(First_Date,Second_Date,First_Name,Second_Name)
print(f'聊天条数1:{First_Count}')
print(f'聊天条数2:{Second_Cound}')

原理

QQ支持把聊天记录导出为.txt文件,使用正则表达式匹配聊天记录。

使用方法

1.导出聊天记录

打开电脑版QQ,面板左下角 设置> 安全设置> 消息记录> 消息管理器> 找到对象右键导出 .txt

2.修改程序

1)在程序变量First_Date和Second_Date中添加你需要查询的日期(允许正则表达式) First为第一个查询对象,Second为第二个查询对象,下同
2)在程序变量First_Name和Second_Name中添加你需要查询的对象的群昵称(可以查看.txt文件)旧记录中的群昵称随时间变化,比如一天前我的群昵称是aa,即便我现在改了,但是昨天的记录中我的昵称还是aa
3)在程序First_Dic和Second_Dic中添加第1.步导出的.txt文件地址
4)运行程序

项目Github链接

posted @ 2020-04-02 10:38  桓公子  阅读(398)  评论(0编辑  收藏  举报