2021-07-14
作者:互联网
了解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()
监听信息,保存信息
最重要的代码接口是这一句:
@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':# 撤回的消息为图片
...
标签:07,itchat,微信,撤回,消息,14,msg,type,2021 来源: https://blog.csdn.net/qq_44884421/article/details/118735857