网易首页 > 网易号 > 正文 申请入驻

微信聊天女神撤回了啥,Python来搞定!

0
分享至

微信最温柔的功能是:对方正在输入...

最残忍的提示是:消息已发出,但被对方拒收了...

最冷漠的开关是:朋友圈三天可见...

但要说微信最让人不爽的发明,消息撤回绝对能上榜

那么到底有没有什么办法能够知道对方撤回了什么呢?表急,Python带你搞定。

一、模块介绍

用Python实现微信的撤回消息查看功能。

Python有一个超级强大的库:itchat。

翻译过来是这样的:itchat是一个针对个人帐户的开放式微信api项目,它使你可以通过命令行访问您的个人微信帐户。

那么既然是针对微信的开发,我们自然离不开这个模块的协助啦。所以呢,先下载一下这个模块:

pip install itchat

当然,也可以直接在Pycharm中导入,Pycharm会提示你下载。

二、模块初体验

可能有的同学没有接触过这个模块。所以呢,先简单的带你入门。

①如何登陆微信

要操作微信,那么第一个问题就是如何登录微信呢?登录微信还是很简单的,直接上代码:

import itchat

itchat.login()

不要怀疑,一句代码就可以完成登录,运行一下就会弹出一个二维码,扫描之后在手机上授权登录,控制台上就会提示是否登录成功了。

Login successfully as Y

控制台显示这样就说明成功登陆了。

这里有一个注意事项,多次操作你就会发现每次运行程序都要扫描二维码登录,这样是在太麻烦了,能不能扫描一次之后自动登陆呢?当然没问题啦。看下面代码:

import itchat

itchat.auto_login(hotReload=True)

或者通过函数名也能知道该方法可以实现自动登录,运行程序,扫码登录之后会在项目路径下创建一个itchat.pkl文件,此文件用于存储登录状态,所以千万千万不要动它,如果说你想换一个微信登录,那就需要先把这个文件删除。因为这个文件记录的是上一个微信的状态,只有删除之后才能登录。

注意:这种方式只能保证你在短时间内无需重复登录,时间一长,还是要重新扫码才能登录的。

说到这里,有些人可能会发现自己的微信登录不上。据我了解,一些新注册的用户或者是长期不使用的用户不能登陆网页版微信的,所以会导致登录不上。如果确实登录不上,那也没办法了,下面的内容也就没意义了。

②获取好友列表

成功登陆之后,我们来用itchat模块提供的一些api,获取一下好友列表。

import itchat

itchat.auto_login(hotReload=True)

friends = itchat.get_friends() # 好友列表

print(friends)

使用get_friends()函数就可以获取到好友列表里面的所有好友的信息,其中包含昵称、备注、地址、个性签名、性别等。

我随便找了好友复制一下信息,由于隐私问题,有很多信息我用"*"代替了,我们还是主要分析一下内容。

比如最开始的UserName,这是微信用户的唯一标识,好比我们的身份证号码,你的每个微信好友都有这样一个标识,每个好友之间也都是不一样的;接下来是NickName,这个是好友的微信昵称;HeadImgUrl是好友的微信头像地址;RemarkName是你对好友的备注名等很多;小编不一一说明啦,感兴趣的话可以自己去百度一下哦。

③如何发送消息给好友

那么怎么能发送一条消息给指定的好友呢?也是比较容易实现:

import itchat

itchat.auto_login(hotReload=True)

itchat.send('HelloWorld',toUserName='@f9e42aafa1175b38b60a0be4d651a34c77f2528d9b7784e7aaf415090eca8fa6')

这时候的UserName就派上大用场了,也就是每个微信好友的唯一标识,我们就可以给某个标识对应的好友发送了一条消息,我们可以这样改进一下程序:

import itchat

itchat.auto_login(hotReload=True)

friends = itchat.get_friends()

nickName = '诚信通授权渠道商-老曾'

for i in friends:if '诚信通授权渠道商-老曾' == i['NickName']:

itchat.send('Hello World', toUserName=i['UserName'])break

像上面这样,就能指定发送给任意的好友了,通过好友的昵称在列表里面进行搜索。找到之后,就能获取到这个好友的UserName,然后再发送消息给此好友;或者也可以通过对好友的备注名(RemarkName)进行查找,大家都可以自己挨个试一下。

三、如何获取好友发送的消息

以上是我们的准备工作,接下来就可以正式着手操作啦。上面的这些准备工作,大家必须要掌握。如果不清楚的话,下面的代码你会很懵的。

首先,我们来看一下如何能够获取到好友发送的消息。

import itchat

itchat.auto_login(hotReload=True)

@itchat.msg_register(itchat.content.TEXT)

def resever_info(msg):print(msg)

itchat.run() #保持运行

itchat模块提供了@itchat.msg_register装饰器来监听消息,例如在这里我们自定义了一个resever_info()函数,并用装饰器对消息进行监听,装饰器中传入了itchat.content.TEXT类型,这样监听到的就是消息文本,监听到输入内容之后,装饰器接下来会将文本消息传入resever_info()参数中。所以,msg就是监听到的消息内容。

对于@itchat.msg_register装饰器,它不仅仅能够监听文本,他还能够监听语音、图片、视频等很多形式的消息。当然,为了便捷,在这里我们导入itchat模块下的content模块中的所有内容,因为这些消息类型都是在此模块下声明的。

还有需要大家注意的地方就是最后记得调用itchat的run()函数,需要保持程序运行,否则程序就结束了。

接下来我们可以简单测试一下,我让我的好友发了一条消息给我,控制台就自动输出了以下内容:

内容相当多,我们只挑重要的看一下。

例如:

FromUserName,这是发送者的标识;

ToUserName,这是接收者的标识;

Content,这当然就是文本内容了;

CreateTime,这是发送时间;

注意最后输出的两个值:Type,这个是消息类型,这里是文本类型的Text,Text也是文本内容,所以如果想取出好友发送的消息内容的话,用Content和Text这两种都行。这样看来,取出内容就很容易了:

这里格式化日期用的是time模块。

为了测试便捷,我就发了一条消息给好友,自己发的消息也是会被监听到的,我们一起看一下运行结果:

发送人:AS

消息类型:Text

发送时间:2020-04-15 15:13:12

消息内容:程序猿

再来试一下语音和图片能不能获取到?我们需要回到刚刚的代码:

运行之后,发送语音和图片,可是无论怎么发,控制台都没有任何反应。不要疑惑,因为我们并没有对语音和图片进行监听呀,所以需要改动一下代码:

这次我们再运行一下,发送一张图片和一段语音内容之后,控制台输出了两段内容,但是确实太长了,就不展示给大家啦。

这是一段地址,通过这个我们可以把图片和语音保存下来。

四、如保存好友发送的图片和语音

下面我们就要对好友发送的图片和语音保存下来。

运行之后,就会发送一张图片和一条语音,相应的会在指定目录下生成两个文件:

五、如何监听好友撤回了

到目前来看,其实我们已经完成了消息监听,只需要稍加修改就可以了。不过呢,这个程序其实是有缺陷的,因为并不是所有的消息我们都想要保存,正常情况下好友发送过来的消息我们就可以直接看到,何必在保存下来去看呢?我们不是想知道好友撤回的消息内容吗?

这些就是如何监听好友是否撤回了消息的问题了。其实也不难,Content模块为我们提供了NOTE类型,这个类型指的是系统消息。我们可以通过自定义一个函数,用它来监听系统的消息:

运行之后,我们再发送一条消息撤回试一下,输出的结果如下:

这里只贴出来部分内容,根据内容你就会发现,撤回消息的文本内容为"你撤回了一条消息"。因此要想知道好友是否撤回了消息就很简单了,判断msg['Text'] == '你撤回了一条消息'就可以啦。

六、实现微信防撤回程序

到这里所有关于程序每一步的代码就分析完了,下面是所有代码的汇总:

像以上这样,一个完整的防撤回程序就get了。如果前面的铺垫掌握的很不错的情况下,上面的汇总程序对你来说简直就是so easy。

七、测试程序

下面就是惊心动魄的测试了,我们来试一试这个程序到底成功了吗?

分别给好友发送了文本、图片和语音不同形式的三条消息,然后我再一一撤回。接下来神奇的时刻,微信程序自动向文件传输助手发送了三条消息如下:

这样看来,这个程序也基本完成了。大家可以赶快去试一试。

为了避免撤回的消息透漏别人隐私,所以这里我选择将撤回的消息发送给文件传输助手,如何将消息发送给文件传输助手也很简单:

itchat.send(send_msg, toUserName='filehelper')

toUserName传入filehelper即可。

这样一来,不管对方撤回了什么,你都可以去文件传输助手看看对方究竟撤回了什么。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
肯豆这穿衣服比马卉都大胆

肯豆这穿衣服比马卉都大胆

阿废冷眼观察所
2026-05-29 17:38:23
《歌手2026》第二期落幕,3人镀金失败,2人火出国,1人被骂惨

《歌手2026》第二期落幕,3人镀金失败,2人火出国,1人被骂惨

白面书誏
2026-05-30 17:04:26
补钙“最快”绿叶蔬菜排行榜,芥蓝倒数第一,苋菜第二,建议了解

补钙“最快”绿叶蔬菜排行榜,芥蓝倒数第一,苋菜第二,建议了解

江江食研社
2026-05-30 04:30:06
重大利好!“10万亿元级”机遇!

重大利好!“10万亿元级”机遇!

环球网资讯
2026-05-30 07:32:13
模仿黄仁勋走红后,“我现在很害怕”

模仿黄仁勋走红后,“我现在很害怕”

中国新闻周刊
2026-05-30 18:22:20
克林顿亲口承认:我最后悔这两件事,害了乌克兰,养肥了中国!

克林顿亲口承认:我最后悔这两件事,害了乌克兰,养肥了中国!

阿硢是吃瓜群众
2026-05-12 09:16:25
鏖战近3小时!前世界第一大坂直美2-1双抢七险胜 首进法网16强

鏖战近3小时!前世界第一大坂直美2-1双抢七险胜 首进法网16强

醉卧浮生
2026-05-30 20:13:12
行贿950万被判刑!53岁段暄要解说世界杯了?新平台从央视买版权

行贿950万被判刑!53岁段暄要解说世界杯了?新平台从央视买版权

体育全天候
2026-05-27 17:54:21
埃泽加布里埃尔失点 巴黎点球大战5-4阿森纳 卫冕欧冠冠军

埃泽加布里埃尔失点 巴黎点球大战5-4阿森纳 卫冕欧冠冠军

郝小小看体育
2026-05-31 03:42:43
为什么是5000万 莱奥到了该离开米兰的时候了呢?

为什么是5000万 莱奥到了该离开米兰的时候了呢?

爱看球的龙江闲人
2026-05-31 04:09:44
这就是公开辱华的后果!取消冠军头衔只是开始,职业生涯也全毁了

这就是公开辱华的后果!取消冠军头衔只是开始,职业生涯也全毁了

阿凫爱吐槽
2025-12-17 17:24:39
放假通知,2026中小学生暑假时间确定了,家长却表示难以接受

放假通知,2026中小学生暑假时间确定了,家长却表示难以接受

凯旋学长
2026-05-28 21:49:26
66岁安帅暴怒 感觉被耍得团团转 警告内马尔:14天后还有伤就走人

66岁安帅暴怒 感觉被耍得团团转 警告内马尔:14天后还有伤就走人

风过乡
2026-05-30 08:33:24
这就是国家为什么不关掉网络游戏的原因!网友分享让人恍然大悟

这就是国家为什么不关掉网络游戏的原因!网友分享让人恍然大悟

另子维爱读史
2026-05-29 07:52:02
长期跑步的人,会失去“肉欲”?网友:经常跑的人,那方面都不行

长期跑步的人,会失去“肉欲”?网友:经常跑的人,那方面都不行

马拉松跑步健身
2026-05-29 21:25:54
吴宜泽再获20万!夺冠后已拿285万 奥沙利文:当世界冠军感觉如何

吴宜泽再获20万!夺冠后已拿285万 奥沙利文:当世界冠军感觉如何

念洲
2026-05-30 08:37:37
明日四月十五,记得:1不出,吃2样,忌3事,福气盈满,四季兴旺

明日四月十五,记得:1不出,吃2样,忌3事,福气盈满,四季兴旺

神牛
2026-05-30 13:45:57
宏远速递!徐杰签新合同,杜锋出席重要活动,朱芳雨深夜发声

宏远速递!徐杰签新合同,杜锋出席重要活动,朱芳雨深夜发声

多特体育说
2026-05-30 11:48:16
阿什拉夫3次赢得欧冠追平埃托奥,并列非洲球员历史第一

阿什拉夫3次赢得欧冠追平埃托奥,并列非洲球员历史第一

懂球帝
2026-05-31 04:08:09
法网爆大冷:女单10号种子出局,萨巴伦卡登场王曦雨冲击八强

法网爆大冷:女单10号种子出局,萨巴伦卡登场王曦雨冲击八强

寒律
2026-05-30 11:20:22
2026-05-31 04:31:00
爱尚实训
爱尚实训
做品质教育 用事实说话
70文章数 25关注度
往期回顾 全部

科技要闻

车圈大佬发声:价格战远去,但竞争仍残酷

头条要闻

两名9岁女孩被困电梯近2小时 求救几十次物业无动于衷

头条要闻

两名9岁女孩被困电梯近2小时 求救几十次物业无动于衷

体育要闻

岁月不饶人!39岁德约鏖战近5小时拼到呕吐

娱乐要闻

张碧晨《歌手》 “活人微死” 自嘲

财经要闻

双汇管不住一头猪

汽车要闻

900V+3.2秒破百 领克10+&领克10上市16.99万元起

态度原创

本地
教育
家居
公开课
军事航空

本地新闻

用剪纸的方式,打开江苏扬州

教育要闻

高中历史基础差 速通一轮复习之现代史篇2

家居要闻

云栖 舒展如流云

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

美防长参加"香会" 就美中关系最新表态

无障碍浏览 进入关怀版