利用Python找回微信撤回信息
更新時間:2022年01月07日 10:21:34 作者:python2021_
一條撤回的微信消息,就像一個秘密,讓你迫切地想去一探究竟。這篇文章就將為大家介紹如何用Python找回撤回的微信信息,感興趣的可以試一試
一條撤回的微信消息,就像一個秘密,讓你迫切地想去一探究竟;或如一個誘餌,瞬間勾起你強烈的興趣。你想知道,那是怎樣的一句話?是對方不慎講出的真話,還是一句發(fā)錯了對象的話?

總之,這個撤回的消息,讓人頓生×××。這個時候,就是技術人員出馬的時候了。

Python查看微信撤回消息參考代碼:
import itchat
from itchat.content import *
import os
import time
import xml.dom.minidom # 解析xml模塊
# 這是保存撤回消息的文件目錄(如:圖片、語音等)
temp = 'C:/Users/Administrator/Desktop/CrawlerDemo' + '/' + '撤回的消息'
if not os.path.exists(temp):
os.mkdir(temp)
itchat.auto_login(True) # 自動登錄
dict = {} # 定義一個字典
# 這是一個裝飾器,給下面的函數(shù)添加新功能
# 能夠捕獲好友發(fā)送的消息,并傳遞給函數(shù)參數(shù)msg
@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'] # 取出消息文件名
# 取出消息發(fā)送者標識并從好友列表中檢索
fromUser = itchat.search_friends(userName=msg['FromUserName'])['NickName']
ticks = msg['CreateTime'] # 獲取信息發(fā)送的時間
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) # 監(jiān)聽系統(tǒng)提示
def note_info(msg):
# 監(jiān)聽到好友撤回了一條消息
if '撤回了一條消息' in msg['Text']:
# 獲取系統(tǒng)消息中的Content結點值
content = msg['Content']
# Content值為xml,解析xml
doc = xml.dom.minidom.parseString(content)
# 取出msgid標簽的值
result = doc.getElementsByTagName("msgid")
# 該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'] # 取出發(fā)送者
dt = dict[msgId]['dt'] # 取出發(fā)送時間
recording_info(temp + '/' + info_name) # 保存語音
# 拼接提示消息
send_msg = '【發(fā)送人:】' + fromUser + '\n' + '發(fā)送時間:' + dt + '\n' + '撤回了一條語音'
itchat.send(send_msg, 'filehelper') # 將提示消息發(fā)送給文件助手
# 發(fā)送保存的語音
itchat.send_file(temp + '/' + info_name, 'filehelper')
del dict[msgId] # 刪除字典中對應的消息
print("保存語音")
elif msg_type == 'Text':
text_info = dict[msgId]['info'] # 取出消息標識對應的消息內容
fromUser = dict[msgId]['fromUser'] # 取出發(fā)送者
dt = dict[msgId]['dt'] # 取出發(fā)送時間
# 拼接提示消息
send_msg = '【發(fā)送人:】' + fromUser + '\n' + '發(fā)送時間:' + dt + '\n' + '撤回內容:' + text_info
# 將提示消息發(fā)送給文件助手
itchat.send(send_msg, 'filehelper')
del dict[msgId] # 刪除字典中對應的消息
print("保存文本")
elif msg_type == 'Picture':
picture_info = dict[msgId]['info'] # 取出消息標識對應的消息內容
fromUser = dict[msgId]['fromUser'] # 取出發(fā)送者
dt = dict[msgId]['dt'] # 取出發(fā)送時間
info_name = dict[msgId]['name'] # 取出文件名
picture_info(temp + '/' + info_name) # 保存圖片
# 拼接提示消息
send_msg = '【發(fā)送人:】' + fromUser + '\n' + '發(fā)送時間:' + dt + '\n' + '撤回了一張圖片'
itchat.send(send_msg, 'filehelper') # 將圖片發(fā)送給文件助手
# 發(fā)送保存的語音
itchat.send_file(temp + '/' + info_name, 'filehelper')
del dict[msgId] # 刪除字典中對應的消息
print("保存圖片")
itchat.run()

到此這篇關于利用Python找回微信撤回信息的文章就介紹到這了,更多相關Python找回撤回信息內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實戰(zhàn)之自動發(fā)送郵件的實現(xiàn)
自動發(fā)送郵件能應用于許多場景,下面本文就來和大家講講怎么用Python構建一個自動發(fā)送郵件的腳本。感興趣的小伙伴可以動手嘗試一下2022-05-05
Pytorch數(shù)據(jù)讀取與預處理該如何實現(xiàn)
這篇文章主要介紹了Pytorch數(shù)據(jù)讀取與預處理該如何實現(xiàn),幫助大家更好的理解和學習使用Pytorch,感興趣的朋友可以了解下2021-03-03

