微信是腾讯于2011年1月21日推出的免费应用程序,为智能终端提供即时通讯服务。它是由张小龙领导的腾讯广州R&D中心产品团队打造的。随着互联网的快速发展和人们的需求,微信已经更新为2.6.2.31版,全民微信时代。村里的张阿姨和家里的老父亲都知道怎么用微信。
但是我们和朋友、亲戚、恋人聊天的时候,我估计大家都经历过,就是微信撤单功能里提到的,对方撤一条消息。
一个撤的消息,像一个秘密,让你迫切的想去发现;或者作为诱饵,瞬间激起你的浓厚兴趣。你想知道,那是什么样的句子?是对方无意中说出的真话,还是一句话发错了人?

总之,这次退赛的消息很振奋人心。这个时候,技术人员就该出去了。
参见Python微信召回消息的参考代码:
import itchat from itchat.content import * import os import time import xml.dom.minidom temp = 'C:/Users/Administrator/Desktop/CrawlerDemo' + '/' + '撤回的消息' if not os.path.exists(temp): os.mkdir(temp) itchat.auto_login(True) dict = {} @itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO]) def resever_info(msg): global dict info = msg['Text'] msgId = msg['MsgId'] info_type = msg['Type'] name = msg['FileName'] fromUser = itchat.search_friends(userName=msg['FromUserName'])['NickName'] ticks = msg['CreateTime'] time_local = time.localtime(ticks) dt = time.strftime("%Y-%m-%d %H:%M:%S", time_local) dict[msgId] = {"info": info, "info_type": info_type, "name": name, "fromUser": fromUser, "dt": dt} @itchat.msg_register(NOTE) def note_info(msg): if '撤回了一条消息' in msg['Text']: content = msg['Content'] doc = xml.dom.minidom.parseString(content) result = doc.getElementsByTagName("msgid") msgId = result[0].childNodes[0].nodeValue msg_type = dict[msgId]['info_type'] if msg_type == 'Recording': recording_info = dict[msgId]['info'] info_name = dict[msgId]['name'] fromUser = dict[msgId]['fromUser'] dt = dict[msgId]['dt'] recording_info(temp + '/' + info_name) send_msg = '【发送人:】' + fromUser + 'n' + '发送时间:' + dt + 'n' + '撤回了一条语音' itchat.send(send_msg, 'filehelper') itchat.send_file(temp + '/' + info_name, 'filehelper') del dict[msgId] print("保存语音") elif msg_type == 'Text': text_info = dict[msgId]['info'] fromUser = dict[msgId]['fromUser'] dt = dict[msgId]['dt'] send_msg = '【发送人:】' + fromUser + 'n' + '发送时间:' + dt + 'n' + '撤回内容:' + text_info itchat.send(send_msg, 'filehelper') del dict[msgId] print("保存文本") elif msg_type == 'Picture': picture_info = dict[msgId]['info'] fromUser = dict[msgId]['fromUser'] dt = dict[msgId]['dt'] info_name = dict[msgId]['name'] picture_info(temp + '/' + info_name) send_msg = '【发送人:】' + fromUser + 'n' + '发送时间:' + dt + 'n' + '撤回了一张图片' itchat.send(send_msg, 'filehelper') itchat.send_file(temp + '/' + info_name, 'filehelper') del dict[msgId] print("保存图片") itchat.run() 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
从itchat.content导入*
导入OS
导入时间
导入XML . DOM . minidom
temp = & # 39;c:/Users/Administrator/Desktop/crawler demo & # 39;+ '/'+ '撤回消息& # 39;
如果不是OS . path . exists(temp):
OS . mkdir(temp)
it chat . auto _ log in(True)
dict = { }
@ it chat . msg _ register([文字,图片,好友,卡片,地图,分享,录音,附件,视频])
def resever_info(msg正文& # 39;]
msgId = msg[& # 39;MsgId & # 39]
info _ type = msg[& # 39;类型& # 39;]
name = msg[& # 39;文件名& # 39;]
from user = it chat . search _ friends(userName = msg[& # 39;FromUserName & # 39])['昵称& # 39;]
ticks = msg[& # 39;CreateTime & # 39]
time _ local = time . local time(ticks)
dt = time . strftime(& # 34;% Y-% M-% d % H:% M:% S & # 34;,time _ local)
dict[msgId]= { & # 34;信息& # 34;:信息,& # 34;info _ type & # 34:info_type,& # 34;姓名& # 34;:名称,& # 34;fromUser & # 34:来自用户,& # 34;dt & # 34:dt }
@ it chat . msg _ register(NOTE)
def NOTE _ info(msg):
if & # 39;一条消息被撤回& # 39;在邮件[& # 39;正文& # 39;]:
content = msg[& # 39;内容& # 39;]
doc = XML . DOM . minidom . parse string(content)
result = doc . getelementsbytagname(& # 34;msgid & # 34)
msgId = result[0]。子节点[0]。nodeValue
msg _ type = dict[msgId][& # 39;info _ type & # 39]
if msg _ type = = & # 39;录音& # 39;:
recording _ info = dict[msgId][& # 39;信息& # 39;]
info _ name = dict[msgId][& # 39;姓名& # 39;]
from user = dict[msgId][& # 39;fromUser & # 39]
dt = dict[msgId][& # 39;dt & # 39]
recording _ info(temp+& # 39;/'+info _ name)
send _ msg = & # 39;[发件人:]& # 39;+来自用户+& # 39;n & # 39+ '发送时间:& # 39;+dt+& # 39;n & # 39+ '一个声音被撤回& # 39;
itchat.send(send_msg,& # 39;filehelper & # 39)
it chat . send _ file(temp+& # 39;/'+ info_name,& # 39;filehelper & # 39)
del dict[msgId]
print(& # 34;保存声音& # 34;)
elif msg _ type = = & # 39;正文& # 39;:
text _ info = dict[msgId][& # 39;信息& # 39;]
from user = dict[msgId][& # 39;fromUser & # 39]
dt = dict[msgId][& # 39;dt & # 39]
send _ msg = & # 39;[发件人:]& # 39;+来自用户+& # 39;n & # 39+ '发送时间:& # 39;+dt+& # 39;n & # 39+ '撤回内容:& # 39;+text _ info
it chat . send(send _ msg,& # 39;filehelper & # 39)
del dict[msgId]
print(& # 34;保存文本& # 34;)
elif msg _ type = = & # 39;图片& # 39;:
picture _ info = dict[msgId][& # 39;信息& # 39;]
from user = dict[msgId][& # 39;fromUser & # 39]
dt = dict[msgId][& # 39;dt & # 39]
info _ name = dict[msgId][& # 39;姓名& # 39;]
picture _ info(temp+& # 39;/'+info _ name)
send _ msg = & # 39;[发件人:]& # 39;+来自用户+& # 39;n & # 39+ '发送时间:& # 39;+dt+& # 39;n & # 39+ '一张图片被撤回& # 39;
itchat.send(send_msg,& # 39;filehelper & # 39)
it chat . send _ file(temp+& # 39;/'+ info_name,& # 39;filehelper & # 39)
del dict[msgId]
print(& # 34;保存图片& # 34;)
it chat . run()
123456789101112131415161718192021222323242526272829303132333437383940414243445464748495051525354545454545454533333333434343434434434444447448454545454
本文到此结束,但真心建议,如果是男女朋友,就不要用Python查了。有些事情比知道要好。亲身经历。








