要说微信是最恶心的发明,新闻撤稿绝对能上榜。
比如你在和女朋友微信聊天,或者和喜欢的女生聊天。一不小心就会在没有注意到对方发出的信息的情况下被她及时抽离。这个时候,你很好奇,想知道她发了什么?所以你要问她送了什么,但她回答说& # 34;没事& # 34;。这个回复让你的好奇心更加强烈,立马觉得留言撤回这个功能是用来折磨人的。
那么有什么方法可以知道你心爱的她(他)撤回了什么呢?别担心,Python会帮你解决的。

话不多说,直奔主题。
首先介绍一下itchat库。
Itchat是微信的开源个人号接口,通过它可以实现微信(好友或微信群)的信息处理,包括文字、图片、视频、地理位置消息、名片消息、语音消息、动画表情、普通链接、音乐链接、群消息、红包消息、系统消息等。,微信的消息都可以获取和回复。
itchat库安装:pip install itchat
代码:
''' 创建于2019年7月10日 @作者:北京-红歌QQ交流群:707699217 项目:学习和使用python & # 39;'' # 3。导入模块 从it chat导入it chat 。内容导入* 导入时间 导入re 导入OS msg _根据表情包内容[/H/]face _ bug = none[/H/][/H/]@ it chat . msg _ register([文字,图片,好友,卡片,地图,分享,录音,附件,视频],好友聊天= true,[/H/]ismpchat = true)[/H/]def handle _ receive _ msg(msg):[/H/]global face _ bug,time.local time () #在好友列表中查找发送消息的好友的昵称 msg _ from = it chat . search _ friends(username = msg[& # 39;FromUserName & # 39])['昵称& # 39;] #信息发送时间 msg _ Time = msg[& # 39;CreateTime & # 39] #每条消息的ID msg _ ID = msg[& # 39;MsgId & # 39] #存储信息内容 msg_content = None #存储共享链接,如共享文章和音乐 msg _ share _ URL = none #如果发送的消息是文字或朋友推荐的[/h]Type & # 39;] == '正文& # 39;或者msg[& # 39;类型& # 39;] == '朋友& # 39;: msg _ content = msg[& # 39;正文& # 39;] print(msg _ content) #如果发送的消息是附件、视频、图片、语音 elif msg[& # 39;类型& # 39;] == '附件& # 39;或者msg[& # 39;类型& # 39;] == '视频& # 39; 或msg[& # 39;类型& # 39;] == '图片& # 39; 或msg[& # 39;类型& # 39;] == '录音& # 39;: # Content是下载文件名 msg _ Content = msg[& # 39;文件名& # 39;] msg[& # 39;正文& # 39;](str(msg_content)) #如果消息是推荐的名片 elif msg[& # 39;类型& # 39;] == '卡& # 39;: #内容是推荐人的昵称和性别 msg _ Content = msg[& # 39;推荐信息& # 39;]['昵称& # 39;] + '名片& # 39; 如果消息[& # 39;推荐信息& # 39;]['性& # 39;]= = 1: msg _ content+= & # 39;性别是男& # 39; else: msg _ content+= & # 39;性别是女& # 39; print(msg _ content) #如果消息是共享位置信息 elif msg[& # 39;类型& # 39;] == '地图& # 39;: x,y,location = re . search( & # 34;& lt位置x = & # 34(.*?)"y = & # 34(.*?)"。* label = & # 34(.*?)"。*",msg[& # 39;OriContent & # 39]).group (1,2,3) 如果位置为none: #内容为详细地址 msg _ Content = r & # 39;纬度->:& # 39;+x . _ _ str _ _()+& # 34;经度->:& # 34;+y . _ _ str _ _() else: msg _ content = r & # 34;"+location #如果消息是共享的音乐或文章,详细内容是文章标题或共享名 elif msg[& # 39;类型& # 39;] == '分享& # 39;: msg _ content = msg[& # 39;正文& # 39;] msg _ share _ URL = msg[& # 39;网址& # 39;] print(msg _ share _ URL) face _ bug = msg _ content #在字典中存储信息,每个msg_id对应一条消息 msg _ information . update( msg _ from & # 34;:msg_from,& # 34;msg _ time & # 34:msg_time,& # 34;消息时间记录& # 34;:msg_time_rec, & # 34;msg _ type & # 34:msg[& # 39;类型& # 39;], & # 34;消息内容& # 34;:msg_content,& # 34;msg _ share _ url & # 34:msg _ share _ URL } } ] #这个用来监控是否有好友消息撤回 @ itchat.msg _ register(注意,isfriendchat = true,isgroupchat = ish mat = true) def信息(msg): #如果这里的msg[& # 39;内容& # 39;],如果& # 39;一条消息被撤回& # 39;在邮件[& # 39;内容& # 39;]: old _ msg _ id = re . search(& # 34;& ltmsgid & gt(.*?)& lt/msgid & gt;",msg[& # 39;内容& # 39;]).group(1) #获取消息 old _ msg = msg _ information。get(old _ msg _ id) print(old _ msg) #如果发送表达式[/h]11: it chat . send _ file(face _ bug,toUserName = & # 39filehelper & # 39) #向文档助手发送撤销提醒 else: msg _ body = & # 34;【" +old _ msg . get(& # 39;msg _ from & # 39) + "撤回]n & # 34; +old _ msg . get(& # 34;msg _ type & # 34) + "消息:& # 34;+ "n & # 34 +old _ msg . get(& # 34;消息时间记录& # 34;) + "n & # 34 +r & # 34;"+old _ msg . get(& # 34;消息内容& # 34;) #如果共享文件被撤回,在msg_body中添加共享的url,发送给文件助手 如果old _ msg[& # 39;msg _ type & # 39] == "分享& # 34;: msg _ body+= & # 34;就是这个链接>:& # 34;+old _ msg . get(& # 39;msg _ share _ url & # 39) #向文件助手发送召回消息 itchat.send _ msg (msg _ body,tousername = & # 34filehelper & # 34) #如果有就把文件寄回来 如果old _ msg[& # 34;msg _ type & # 34] == "图片& # 34; 或old _ msg[& # 34;msg _ type & # 34] == "录制& # 34; 或old _ msg[& # 34;msg _ type & # 34] == "视频& # 34; 或old _ msg[& # 34;msg _ type & # 34] == "附件& # 34;: file = & # 34;@ fil @ % s & # 34%(old _ msg[& # 39;msg _ content & # 39]) itchat.send(msg=file,toUserName = & # 39filehelper & # 39) OS . remove(old _ msg[& # 39;msg _ content & # 39]) #删除旧词典信息 msg _ information . pop(old _ msg _ id) it chat . auto _ log in(hot reload = true) it chat . run
扫码登录日志取款测试:
下面是如何生成。exe文件。py文件,这样就可以做成exe发给别人用了。
Pycharm编辑器终端窗口使用
pyinstaller -F .py文件所在的绝对路径成功后,会在python安装路径下的dist文件中看到生成的exe文件。
注:Python 3.6版本中的天赋转换成功








