下面我会结合示例详细讲解“python微信撤回监测代码”的完整攻略。
1. 模块安装
首先,我们需要在命令行中安装itchat模块,它是一个开源的微信个人号接口。
pip install itchat
2. 登录微信
在开始使用itchat模块之前,我们需要先登录微信。
import itchat
# 登录微信
itchat.auto_login(hotReload=True)
auto_login
函数用于实现微信二维码登录,hotReload
参数为True时,登陆的信息将会被保存在一个静态文件中,并且下一次开启程序的时候,我们就不需要再次扫描微信二维码了。
3. 监听消息
接下来是监听微信消息的代码。我们可以使用itchat的装饰器函数,将下文中的@itchat.msg_register
修饰符附加到函数上,使得函数可以被注册为处理特定类型的微信消息。
import itchat
@itchat.msg_register('Text')
def text_reply(msg):
# 监听到撤回消息
if msg['Type'] == 'Note' and '撤回了一条消息' in msg['Content']:
print("有人撤回了消息:{},撤回时间是:{}".format(msg['Content'], msg['ActualNickName']))
上述代码中,我们使用了@itchat.msg_register('Text')
修饰符,使得text_reply()
函数成为了一个处理文本类型消息的函数。我们还使用了if语句来监听撤回消息,而且当监听到撤回消息的时候,程序会输出被撤回的消息内容和撤回时间。
示例一:发一条消息,之后撤回消息
import itchat
@itchat.msg_register('Text')
def text_reply(msg):
# 监听到撤回消息
if msg['Type'] == 'Note' and '撤回了一条消息' in msg['Content']:
print("有人撤回了消息:{},撤回时间是:{}".format(msg['Content'], msg['ActualNickName']))
# 登录微信
itchat.auto_login(hotReload=True)
# 发送消息
friends = itchat.search_friends(name='Tom') # 获取好友列表
if friends:
friend = friends[0]
friend.send('这是一条测试消息。') # 发送消息
itchat.run()
在上述代码中,我们首先使用itchat.search_friends(name='Tom')
函数获取好友列表,然后选择第一个好友,并使用friend.send('这是一条测试消息。')
发送了一条消息,接着程序将会监听到这条消息,并输出“这是一条测试消息。”这句话。最后,我们使用itchat.run()
来运行整个程序,等待监听消息。
之后,我们可以在微信端将该消息撤回,程序就会输出类似于“有人撤回了消息:你撤回了一条消息,撤回时间是:Tom”这样的信息。
示例二:监测群聊中的撤回消息
除了监测个人聊天中的撤回消息之外,我们还可以监控群聊中的撤回消息。
import itchat
from itchat.content import *
@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING, PICTURE, RECORDING, ATTACHMENT, VIDEO], isGroupChat=True)
def group_reply(msg):
# 监听到撤回消息
if msg['Type'] == 'Note' and '撤回了一条消息' in msg['Content']:
print("有人在【{}】群组撤回了消息:{},撤回时间是:{}".format(msg['User']['NickName'], msg['Content'], msg['ActualNickName']))
# 登录微信
itchat.auto_login(hotReload=True)
# 监听消息
itchat.run()
在上例中,我们使用了isGroupChat=True
参数来告诉@itchat.msg_register
监听群聊消息,并使用if语句来判断是否是撤回消息,如果是撤回消息,程序就会输出类似于“有人在【Python学习交流】群组撤回了消息:WMR撤回了一条消息,撤回时间是:WMR”这样的信息。
以上就是“python微信撤回监测代码”的完整攻略,希望对你有帮助!