博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python查看微信好友撤回的消息
阅读量:5943 次
发布时间:2019-06-19

本文共 3154 字,大约阅读时间需要 10 分钟。

公众号:Charles的皮卡丘

作者:Charles

开发工具:

Python版本:3.6.4
相关模块:
itchat模块;
以及一些Python自带的模块。

环境搭建:

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介:

思路比较简单,利用itchat模块登录网页版微信,将自己微信收到的所有消息都缓存下来,当检测到有消息撤回时,将撤回消息的缓存版本通过文件传输助手发送到自己的手机上。
因此,你必须保证脚本24小时运行才可以一直监视别人有没有撤回消息。
具体实现过程详见源代码。

视频演示:

源代码:

# Python查看微信撤回消息# 公众号: Charles的皮卡丘# 作者: Charlesimport reimport osimport timeimport itchatimport platformfrom itchat.content import TEXTfrom itchat.content import *msg_info = {}face_package = None# 处理接收到的信息@itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO], isFriendChat=True, isMpChat=True)def handleRMsg(msg):    global face_package    # 接收消息的时间    msg_time_receive = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())    # 发信人    try:        msg_from = itchat.search_friends(userName=msg['FromUserName'])['NickName']    except:        msg_from = 'WeChat Official Accounts'    # 发信时间    msg_time_send = msg['CreateTime']    # 信息ID    msg_id = msg['MsgId']    msg_content = None    msg_link = None    # 文本或者好友推荐    if msg['Type'] == 'Text' or msg['Type'] == 'Friends':        msg_content = msg['Text']        print('[Text/Friends]: %s' % 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))        print('[Attachment/Video/Picture/Recording]: %s' % msg_content)    # 推荐名片    elif msg['Type'] == 'Card':        msg_content = msg['RecommendInfo']['NickName'] + '的推荐名片,'        if msg['RecommendInfo']['Sex'] == 1:            msg_content += '性别男。'        else:            msg_content += '性别女。'        print('[Card]: %s' % msg_content)    # 位置信息    elif msg['Type'] == 'Map':        x, y, location = re.search("
(.*?)\<\/msgid\>", msg['Content']).group(1) recall_msg = msg_info.get(recall_msg_id) print('[Recall]: %s' % recall_msg) # 表情包 if len(recall_msg_id) < 11: itchat.send_file(face_package, toUserName='filehelper') else: msg_prime = '---' + recall_msg.get('msg_from') + '撤回了一条消息---\n' \ '消息类型:' + recall_msg.get('msg_type') + '\n' \ '时间:' + recall_msg.get('msg_time_receive') + '\n' \ r'内容:' + recall_msg.get('msg_content') if recall_msg['msg_type'] == 'Sharing': msg_prime += '\n链接:' + recall_msg.get('msg_link') itchat.send_msg(msg_prime, toUserName='filehelper') if recall_msg['msg_type'] == 'Attachment' or recall_msg['msg_type'] == "Video" or recall_msg['msg_type'] == 'Picture' or recall_msg['msg_type'] == 'Recording': file = '@fil@%s' % (recall_msg['msg_content']) itchat.send(msg=file, toUserName='filehelper') os.remove(recall_msg['msg_content']) msg_info.pop(recall_msg_id)if __name__ == '__main__': if platform.platform()[:7] == 'Windows': itchat.auto_login(enableCmdQR=False, hotReload=True) else: itchat.auto_login(enableCmdQR=True, hotReload=True) itchat.run()

欢迎关注我的个人公众号:Charles的皮卡丘

图片描述

转载地址:http://cuzxx.baihongyu.com/

你可能感兴趣的文章
GraphQL 01--- GraphQL 介绍及资源总结
查看>>
nginx配置访问密码,让用户输入用户名密码才能访问
查看>>
串结构练习——字符串匹配
查看>>
CF Round #426 (Div. 2) The Useless Toy 思维 水题
查看>>
UVA 122 Trees on the level 二叉树 广搜
查看>>
POJ-2251 Dungeon Master
查看>>
tortoisesvn的安装
查看>>
大S变"汪太"!与汪小菲注册结婚
查看>>
我是怎么使用最短路径算法解决动态联动问题的
查看>>
sublime Text 2 配置以及 Python环境搭建
查看>>
[2778]小明的花费预算 (二分查找)SDUT
查看>>
Runnable接口介绍(中文文档)
查看>>
URAL 1353 Milliard Vasya's Function DP
查看>>
速读《构建之法:现代软件工程》提问
查看>>
在iOS微信浏览器中自动播放HTML5 audio(音乐)的2种正确方式
查看>>
Android onclicklistener中使用外部类变量时为什么需要final修饰【转】
查看>>
Matlab2012a下配置LibSVM—3.18
查看>>
SpringBoot 搭建
查看>>
中信国健临床通讯2011年7月期目录
查看>>
iOS开发之设计模式篇
查看>>