【python的小妙招】找回女神微信撤回信息|Python 主题月

不知道你们有没有试过一时不留意微信信息,发信息的人秒撤回了。然后你心中各种纠结:到底撤回了啥?今天来帮你们解决这个烦恼。

image.png

所以女王大人究竟撤回了什么呢??

了解itchat

这里先介绍一个新东西:itchat。这是个什么东西?简单来说,它就是个微信机器人。itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。

有了itchat,如果你想要给文件传输助手发一条信息,只需要这样:

import itchat

itchat.auto_login()

itchat.send('Hello, filehelper', toUserName='filehelper')
复制代码

如果你想要回复发给自己的文本消息,只需要这样:

import itchat
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
    return msg.text

itchat.auto_login()
itchat.run()
复制代码

更多的实例,自己可以去官网查看,这里是它的api地址

接下来要做的事是,利用这个api找到撤回的信息。

监听信息,保存信息

最重要的代码接口是这一句:
@itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO]) # 文本,语音,图片
def resever_info(msg):
这个是检测接收到的信息,包括文本,语言,图片这三种。我们需要做的是把监听的信息都保存起来。

    itext = msg['Text']  # 取出消息内容
    iid = msg['MsgId']  # 取出消息标识
    itype = msg['Type']  # 取出消息类型
    sname = msg['FileName']  # 取出消息文件名
    susername = itchat.search_friends(userName=msg['FromUserName'])['NickName']
    stime = msg['CreateTime']  # 获取信息发送的时间
    time_local = time.localtime(ticks)
复制代码

这些拿到的信息可以全部保存进字典。

监控系统提示,提取保存的信息

接下来我们需要监控系统提示

@itchat.msg_register(NOTE) # 监听系统提示

def note_info(msg):

def note_info(msg):
    # 监听到好友撤回了一条消息
    if '撤回了一条消息' in msg['Text']:
        content = msg['Content']
        # Content值为xml,解析xml
        doc = xml.dom.minidom.parseString(content)
        # 取出msgid标签的值
        result = doc.getElementsByTagName("msgid")
        # 该msgId就是撤回的消息标识,通过它可以在字典中找到撤回的消息信息
        msgId = result[0].childNodes[0].nodeValue
        # 从字典中取出对应消息标识的消息类型
        msg_type = dict[msgId]['info_type']
        if msg_type == 'Recording':	# 撤回的消息为语音
          ....
        elif msg_type == 'Text':# 撤回的消息为文本
          ....
        elif msg_type == 'Picture':# 撤回的消息为图片
          ...

复制代码

image.png

上面的思想还是说的比较清楚的。就是利用itchat进行信息监听和保存,再监听系统提示,最后从系统提示中可以找到已经撤回的信息。

有需要拿完整源码的话,请移步到公众号:诗一样的代码。既然进来了,原创不易。小伙伴点个赞再走呗

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享