python学习 -对象把微信消息撤回后好慌,有了这个你就能看到撤回的消息了(超详解)

90 篇文章 29 订阅
38 篇文章 23 订阅

目录​​​​​​​ 

一.简介

普通人

python技术人员

1、准备环境

2、itchat介绍

3、itchat使用

4、pycharm解释器写入代码


一.简介

当我们与朋友,亲人,爱人聊天的时候,我估计每个人都经理过,那就是微信撤回功能中所提到的,对方撤回一条消息。

俗话说,说出口的话,如泼出去的水,是收不回的。但今天可以了,在微信和QQ上,你可以撤回你刚刚说的话。当你的手机发出“嘀”的提示音,表示你收到了一条消息。忙打开,迫不及待地看看,是谁又在与自己说话。还没来得及看,或还没有看完,那句话却忽然没了,屏幕上显示“对方撤回了一条消息”。这个时候,我们都会有所感受

每天,我们的手机都会收到大量的信息,包括别人与你说的话,其中的绝大多数,都属于可有可无的话,即垃圾信息。你也许为此不胜其烦,但有一条消息,一定能够引起你的关注,那就是“对方撤回了一条消息”。

一条撤回的消息,就像一个秘密,让你迫切地想去一探究竟;或如一个诱饵,瞬间勾起你强烈的兴趣。你想知道,那是怎样的一句话?是对方不慎讲出的真话,还是一句发错了对象的话?

总之,这个撤回的消息,让人顿生×××。这个时候,就是技术人员出马的时候了,哪门子技术人员?如:Python程序员!

看了上边这种那个图片想必大家都不是很陌生吧。
你是不是遇到过这样的情况,一个微信群,某个臭小子或者女神、男神发了条消息,等到自己有时间去看的时候却被撤回了……总感觉自己突然成为了唯一的吃瓜群众……
又或者你的女神、男神发了个消息,结果没来急看就这样了……
比如......下面这个


内心独白:好想知道对面跟我说了什么了?
内心独白:我要不要直接打电话过去?
内心独白:还是直接问问刚才你发的什么(屁话,人家想让你知道还撤回啊?)


想要知道那条消息是啥,想的心里痒痒?今天就给大家透露一个方法,嘿嘿嘿,接着看吧:
哈哈哈!

普通人

此方法只针对iPhone用户,且只能查看文字消息(Android 用户可以试一下,成不成功吗,这里还是个问号,因为宏哥没有实践,没有实践,就没有发言权)。

此方法对图片、视频神马的没办法的呦!具体操作:

1.首先,进入iPhone的设置页面,设置通知栏。

2.在微信的设置页面,允许微信通知,并且其中的所有选项都修改为允许。

3.这么设置以后有啥效果呢?嘿嘿嘿,小伙伴们想想看,你那丰富的通知栏……懂了吧,啥消息都会给你留在那儿了。

PS:如果你按照我的说法做了,但是仍然没有看到消息,可能是微信APP内的设置选项没有打开,可以打开微信设置——新消息通知——打开通知显示消息详情,然后再试试罗!
小伙伴们拿走不谢!

最后有些人说这么简单,哪里用你教,拜托我也是搜集的一些小技巧,没有提醒,咋么想到这个方法呢?

 以上方法撑死了只能看到文字信息,图片语音等等就看不到了,下边介绍代码实现得方法:

ps:安卓手机我试过了很好使的,有兴趣的iPhone手机用户也可以试一下哈!!!

python技术人员

1、准备环境

  • python语言环境
  • python解释器-pycharm

2、itchat介绍

itchat是一个开源的微信个人号接口,通过itchat可以实现微信(好友或微信群)的信息处理,包括文本、图片、小视频、地理位置消息、名片消息、语音消息、动画表情、普通链接、音乐链接、群消息、红包消息、系统消息等,可以对微信的消息进行获取和回复。

3、itchat使用

  • itchat库的安装

1

pip install itchat


4、pycharm解释器写入代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。

'''

Created on 2019-7-10

@author: 测试架构师北凡   QQ交流群:913569736(备注“csdn000”)

Project:学习和使用python

'''

# 3.导入模块

import itchat

from itchat.content import *

import time

import re

import os

msg_information = {}

# 针对表情包的内容

face_bug = None

@itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO], isFriendChat=True, isMpChat=True)

def handle_receive_msg(msg):

    global face_bug

    # 接收消息的时间

    msg_time_rec = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

    # 在好友列表列表中查询发送信息的好友昵称

    msg_from = itchat.search_friends(userName=msg['FromUserName'])['NickName']

    # 信息发送的时间

    msg_time = msg['CreateTime']

    # 每条信息的ID

    msg_id = msg['MsgId']

    # 储存信息的内容

    msg_content = None

    # 储存分享的连接,比如分享的文章和音乐

    msg_share_url = None

    # 如果发送的消息是文本或者好友推荐

    if msg['Type'] == 'Text' or msg['Type'] == 'Friends':

        msg_content = msg['Text']

        print(msg_content)

    # 如果发送的消息是附件,视频,图片,语音

    elif msg['Type'] == 'Attachment' or msg['Type'] == 'Video' \

        or msg['Type'] == 'Picture'\

            or msg['Type'] == 'Recording':

        # 内容为下载文件名

        msg_content = msg['FileName']

        msg['Text'](str(msg_content))

    # 如果消息是推荐的名片

    elif msg['Type'] == 'Card':

        # 内容是推荐人的昵称和性别

        msg_content = msg['RecommendInfo']['NickName'] + '的名片'

        if msg['RecommendInfo']['Sex'] == 1:

            msg_content += '性别为男'

        else:

            msg_content += '性别为女'

        print(msg_content)

    # 如果消息为分享的位置信息

    elif msg['Type'] == 'Map':

        x, y, location = re.search(

            "<location x=\"(.*?)\" y=\"(.*?)\".*label=\"(.*?)\".*", msg['OriContent']).group(1, 2, 3)

        if location is None:

            # 内容为详细地址

            msg_content = r'纬度->' + x.__str__() + "经度->" + y.__str__()

        else:

            msg_content = r"" + location

    # 如果消息是分享的音乐或者文章,详细的内容为文章的标题或者分享的名字

    elif msg['Type'] == 'Sharing':

        msg_content = msg['Text']

        msg_share_url = msg['Url']

        print(msg_share_url)

    face_bug = msg_content

    # 将信息存储在字典中,每一个msg_id对应一条消息

    msg_information.update(

        {

            msg_id: {

                "msg_from": msg_from, "msg_time": msg_time, "msg_time_rec": msg_time_rec,

                "msg_type": msg['Type'],

                "msg_content": msg_content, "msg_share_url": msg_share_url

            }

        }

)

#这个是用于监听是否有friend消息撤回

@itchat.msg_register(NOTE, isFriendChat=True, isGroupChat=True, isMpChat=True)

def information(msg):

    # 这里如果这里的msg['Content']中包含消息撤回和id,就执行下面的语句

    if '撤回了一条消息' in msg['Content']:

        old_msg_id = re.search("\<msgid\>(.*?)\<\/msgid\>", msg['Content']).group(1)

        # 得到消息

        old_msg = msg_information.get(old_msg_id)

        print(old_msg)

        # 如果发送的是表情

        if len(old_msg_id)<11:

            itchat.send_file(face_bug, toUserName='filehelper')

        # 发送撤回的提示给文件助手

        else:

            msg_body = "【"\

                       + old_msg.get('msg_from') + "撤回了】\n"\

                       + old_msg.get("msg_type") + "消息:" "\n"\

                       + old_msg.get("msg_time_rec") + "\n"\

                       + r"" + old_msg.get("msg_content")

        # 如果分享的文件被撤回了,那么就将分享的url加在msg_body中发送给文件助手

        if old_msg['msg_type'] == "Sharing":

            msg_body += "\n就是这个链接>" + old_msg.get('msg_share_url')

        # 将撤回消息发送到文件助手

        itchat.send_msg(msg_body, toUserName="filehelper")

        # 有文件的话也要将文件发送回去

        if old_msg["msg_type"] == "Picture"\

                or old_msg["msg_type"] == "Recording"\

                or old_msg["msg_type"] == "Video"\

                or old_msg["msg_type"] == "Attachment":

            file = "@fil@%s" % (old_msg['msg_content'])

            itchat.send(msg=file, toUserName='filehelper')

            os.remove(old_msg['msg_content'])

        # 删除字典旧信息

        msg_information.pop(old_msg_id)

itchat.auto_login(hotReload=True)

itchat.run()

 

运行之后需要扫描二维码登录,登录后微信手机助手就能监测到对方撤回的消息

扫码登录日志撤回测试:

 文件传输助手接收到的撤回信息:(你可以在这里查看女神或者男神撤回的信息)

下面介绍.py文件如何生成.exe文件,方便做成exe发送给其他人使用
pycharm编辑器Terminal窗口使用

1

pyinstaller -F .py文件所在绝对路径

成功之后会在python安装路径下的dist文件看到生成的exe文件
PS:python3.6版本下的才能转换成功

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值