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

微信聊天女神撤回了啥,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.

相关推荐
热点推荐
女孩当小姐,一晚要提供4到5次上门服务,2015年被亲人点到不赴约

女孩当小姐,一晚要提供4到5次上门服务,2015年被亲人点到不赴约

汉史趣闻
2025-11-08 09:27:32
“大鹅声音都哑了还在叫”,广东女子回娘家崩溃,同行“乘客”叫了整整8小时;网友:最终还是铁锅炖

“大鹅声音都哑了还在叫”,广东女子回娘家崩溃,同行“乘客”叫了整整8小时;网友:最终还是铁锅炖

台州交通广播
2026-03-01 10:54:54
14亿人都不会忘却!揭开核酸大王张核子的真面具:权力变现大公

14亿人都不会忘却!揭开核酸大王张核子的真面具:权力变现大公

大鱼简科
2026-02-07 09:52:29
一旦战争爆发中国或将被围攻,对中国而言,最危险的不只战争

一旦战争爆发中国或将被围攻,对中国而言,最危险的不只战争

来科点谱
2026-01-23 11:04:18
塔利班一天都没扛住,被打懵后向联大求援,巴铁:中国武器真好用

塔利班一天都没扛住,被打懵后向联大求援,巴铁:中国武器真好用

黑鹰观军事
2026-02-28 16:05:16
世预赛迎来关键转折!中国男篮连获三个好消息,赢球直接升至第二

世预赛迎来关键转折!中国男篮连获三个好消息,赢球直接升至第二

篮球看比赛
2026-03-01 14:48:06
5年资产缩水270亿,卖酒套现1.1亿,刘銮雄终是向岁月低下了头

5年资产缩水270亿,卖酒套现1.1亿,刘銮雄终是向岁月低下了头

八斗小先生
2026-02-28 17:24:32
轮到西方一克难求,如今全球巨头终于明白,中国该领域已改天换地

轮到西方一克难求,如今全球巨头终于明白,中国该领域已改天换地

泠泠说史
2026-03-01 17:05:28
伊朗不太可能参与2026世界杯,如果弃战会由哪队补上?

伊朗不太可能参与2026世界杯,如果弃战会由哪队补上?

体育妞世界
2026-03-01 17:31:30
追梦在场勇士4连败!勇媒炮轰该退役 功勋篮球已过时 兼职当主业

追梦在场勇士4连败!勇媒炮轰该退役 功勋篮球已过时 兼职当主业

颜小白的篮球梦
2026-03-01 13:14:32
网传新能源汽车开征“里程税” 收费0.12元/公里 多地回应

网传新能源汽车开征“里程税” 收费0.12元/公里 多地回应

快科技
2026-02-27 21:58:15
中国四位最“不靠谱”专家,“忽悠”央视28年,为何还能爆火至今

中国四位最“不靠谱”专家,“忽悠”央视28年,为何还能爆火至今

小莜读史
2026-02-27 20:30:12
人品好!张本美和:我解释后王曼昱同意医疗暂停 赛后问我没问题吧

人品好!张本美和:我解释后王曼昱同意医疗暂停 赛后问我没问题吧

818体育
2026-03-01 13:27:01
大量瑞幸新年礼盒流入闲鱼,内含便携咖啡机,全新最低46块

大量瑞幸新年礼盒流入闲鱼,内含便携咖啡机,全新最低46块

闲搞机
2026-02-27 11:02:52
这组照片是张学良软禁时真实生活,奢华至极,完全不像囚徒生活!

这组照片是张学良软禁时真实生活,奢华至极,完全不像囚徒生活!

芊芊子吟
2026-02-19 12:00:06
澳大利亚惊现封闭乱伦家族:4代人近亲繁衍38名成员全是乱伦产物

澳大利亚惊现封闭乱伦家族:4代人近亲繁衍38名成员全是乱伦产物

第7情感
2026-02-23 20:45:16
惊人的家庭铁律:对兄弟姐妹家的孩子“不闻不问” 才是真正的

惊人的家庭铁律:对兄弟姐妹家的孩子“不闻不问” 才是真正的

户外阿毽
2026-03-01 12:15:16
美论坛:一旦美突然向中国发射200枚核弹,中国有能力反击吗

美论坛:一旦美突然向中国发射200枚核弹,中国有能力反击吗

安珈使者啊
2026-02-27 11:51:18
知名好莱坞演员在自家谷仓内身亡:汽车搭电时突然自燃,曾获5届拳击冠军

知名好莱坞演员在自家谷仓内身亡:汽车搭电时突然自燃,曾获5届拳击冠军

红星新闻
2026-02-27 17:33:09
火箭遭热火逆转终结3连胜 杜兰特32+6+8冲突吃T阿门20+11

火箭遭热火逆转终结3连胜 杜兰特32+6+8冲突吃T阿门20+11

醉卧浮生
2026-03-01 07:09:34
2026-03-01 18:07:00
爱尚实训
爱尚实训
做品质教育 用事实说话
70文章数 25关注度
往期回顾 全部

科技要闻

小米超跑概念车全球首秀!杀入顶豪俱乐部

头条要闻

哈梅内伊"回归天国" 美以如何确认其行踪引发内鬼猜测

头条要闻

哈梅内伊"回归天国" 美以如何确认其行踪引发内鬼猜测

体育要闻

火箭输给热火:乌度卡又输斯波教练

娱乐要闻

《江山为聘》:吴谨言陈哲远燃炸朝堂

财经要闻

中东局势升级 如何影响A股、黄金和原油

汽车要闻

理想汽车2月交付26421辆 历史累计交付超159万辆

态度原创

家居
亲子
旅游
数码
公开课

家居要闻

素色肌理 品意式格调

亲子要闻

泉州孕妇跨省求医,港大深圳医院成功救治“先心病”双胞胎

旅游要闻

把春天的欢乐气息带进每一寸花田 赴一场限定春日浪漫

数码要闻

小米首款追踪器!小米Tag海外正式发布 兼容iOS 120元起

公开课

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

无障碍浏览 进入关怀版