您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么用Python代碼實(shí)現(xiàn)微信消息撤回捕捉功能”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
1,模塊介紹
首先的話要實(shí)現(xiàn)消息撤回捕捉得用到python上一個(gè)十分強(qiáng)大的庫:itchat。如果大家沒有使用過的話小編就來介紹一下:
Project description itchat is a open souce wechat api project for personal account. It enables you to access your personal wechat account through command line.
以上意思就是:itchat是一個(gè)面向個(gè)人賬戶的開源微信api項(xiàng)目。您可以通過命令行訪問您的個(gè)人微信帳戶。 所以說我們今天就要用到這個(gè)庫,首先我們要 :
pip install itchat
2,模塊功能熟悉
小編這里考慮到有些小伙伴從來沒用過這個(gè)模塊,所以下面會對這個(gè)模塊進(jìn)行一個(gè)簡單的講解。
2.1 如何登錄微信
既然我們要捕捉微信的撤回信息那第一步肯定是要先登錄微信,登錄微信非常簡單只需要兩行代碼:
import itchatitchat.login()
這樣就好了,是不是特別簡單,然后運(yùn)行之后就會出現(xiàn)一個(gè)二維碼,掃描之后再手機(jī)上面授權(quán)登錄,控制臺就會顯示你是否登錄成功。
•Login successfully as .
這樣就說明你登錄成功了,但是這邊如果是新創(chuàng)建的微信和長期不使用的微信的話是無法登錄網(wǎng)頁版微信的,所以這里也會導(dǎo)致登錄不上。如果登錄不上,那也是沒有辦法的
2.2 獲取好友列表
import itchat itchat.auto_login(hotReload=True) friends = itchat.get_friends() # 好友列表 print(friends)
使用get_friends()這個(gè)函數(shù)就能獲取到好友列表的所有好友信息,包括昵稱,備注名,地址,個(gè)性標(biāo)簽,性別等等。
[{'UserName': '@7c2215e17edf4b193f125d6ecf944abcaf19ba72e3eb24b8442d5e32d4a8be92', 'City': '', 'DisplayName': '', 'PYQuanPin': '', 'RemarkPYInitial': '', 'Province': '', 'KeyWord': '', 'RemarkName': '', 'PYInitial': '', 'EncryChatRoomId': '', '**': '', 'Signature': '', 'NickName': '**', 'RemarkPYQuanPin': '', 'HeadImgUrl': '**'
這里我就隨便復(fù)制了一個(gè)好友的信息,關(guān)于到隱私的問題我就把信息全部用**代替了,我們重點(diǎn)是分析一下這些信息的內(nèi)容,比如最開始的UserName這個(gè)是用戶的唯一標(biāo)識,相當(dāng)于身份證號碼一樣的,所有的好友UserName都是不一樣的,然后是NickName:這是好友的昵稱,HeadImgUrl:這是好友的頭像地址,還有一些就不一一介紹了,大家感興趣的話可以自己去了解一下
2.3 發(fā)送信息給好友
我們現(xiàn)在準(zhǔn)備發(fā)送一條信息給好友,具體怎么操作呢?看下面代碼
import itchat itchat.auto_login(hotReload=True) itchat.send("人生苦短,我學(xué)python",toUserName="@c4326bda513bf7cdd19f1fa03dbf7e7bc3bbc57e5abb71fd580b2c3c32cddd99")
itchat.send()這個(gè)函數(shù)可以放兩個(gè)參數(shù),第一個(gè)你要發(fā)送給好友的信息,第二個(gè)指定好友也就是toUserName=上面所說的唯一身份標(biāo)識UserName但是上面方法我覺得還是有點(diǎn)不妥,然后我就改進(jìn)了一下
import itchat itchat.auto_login(hotReload=True)friends = itchat.get_friends()nickName = '你禿我不禿' for i in friends: if '你禿我不禿' == i['NickName']: itchat.send('人生苦短,我學(xué)python', toUserName=i['UserName']) break
這樣我就可以發(fā)信息給任意好友,通過好友的昵稱哎好友列表中進(jìn)行查找,找到的話我就獲取該好友的UserName然后發(fā)送消息,也可以通過對好友的備注名RemarkName查找,大家可以根據(jù)自己的喜好選擇
2.4 裝飾器
關(guān)于itchat這個(gè)模塊還有很多功能,小編在這里就不做過多講解了,我們只要了解消息撤回所需要的知識點(diǎn)就行了,然后我們進(jìn)行最后一個(gè)內(nèi)容,裝飾器 關(guān)于裝飾器小編這邊簡單介紹一下,裝飾器的是勇于擴(kuò)展原來函數(shù)功能的一種函數(shù),目的是再不改變原函數(shù)名的情況下給函數(shù)增加新的功能。 例如我喜安智又一個(gè)函數(shù)foo(),你并不知道函數(shù)的實(shí)現(xiàn)原理,你肯定也不能去修改這個(gè)函數(shù)的代碼而你需要給這個(gè)函數(shù)添加一個(gè)輸出開始運(yùn)行時(shí)間和結(jié)束運(yùn)行時(shí)間的功能,改如何實(shí)現(xiàn),這時(shí)候你就可以用裝飾器了:
import time def show_time(foo): def inner(): print(time.time()) foo() print(time.time()) return inner @show_timedef foo(): passfoo()
上面這段代碼的意思:首先@show_time就是使用一個(gè)裝飾器show_time,這個(gè)時(shí)候就會將裝飾器的函數(shù),也就是foo()作為參數(shù)傳遞給裝飾器show_time(),我們知到函數(shù)作為返回值的話,執(zhí)行的其實(shí)是該函數(shù),所以程序會執(zhí)行內(nèi)部函數(shù)inner(),此時(shí)輸出開始運(yùn)行時(shí)間,然后調(diào)用foo()函數(shù),最后輸出結(jié)束運(yùn)行時(shí)間,這樣就實(shí)現(xiàn)了一個(gè)功能擴(kuò)展,這也是很典型的面向切面編程思想。
3,如何監(jiān)聽好友撤回的信息
其實(shí)到了這里我們就已經(jīng)完成了消息的監(jiān)聽只需要稍加修改就好了,但是這個(gè)程序還是有一點(diǎn)問題的,就是所有的消息我們都需要去保存,好友正常發(fā)送過來的消息我們直接就能看到保存下來不是多此一舉嗎,我們的目的是想知道好友撤回了什么內(nèi)容,這里就涉及到如何監(jiān)聽好友是否撤回了信息這個(gè)問題了,其實(shí)也不難,Content模塊為我們提供了NOTE類型,這個(gè)類型指的是系統(tǒng)消息,所以我們可以自定義一個(gè)函數(shù)用來監(jiān)聽系統(tǒng)消息:
import itchat from itchat.content import * # 導(dǎo)入itchat下的content模塊 itchat.auto_login(hotReload=True) @itchat.msg_register(NOTE) def note_info(msg): # 監(jiān)聽系統(tǒng)消息 print(msg) itchat.run()
運(yùn)行程序,我們撤回一條信息測試一下,輸出的結(jié)果如下:
'DisplayName': '', 'ChatRoomId': 0, 'KeyWord': '', 'EncryChatRoomId': '', 'IsOwner': 0}>, 'Type': 'Note', 'Text': '你撤回了一條消息'}
則例截取的部分的內(nèi)容這樣會發(fā)小撤回信息的文本內(nèi)容“你撤回了一條信息”,如意要想知道好友是否撤回了消息就很簡單了,判斷一下,msg['Text']=='你撤回了一條信息'就行了
4, 實(shí)現(xiàn)微信消息撤回捕捉功能
現(xiàn)在關(guān)于程序的每個(gè)步驟代碼到這里也就分析完了,接下來就是對所有的代碼進(jìn)行一個(gè)總結(jié)以下就是所有代碼的總結(jié):
現(xiàn)在我們來測試一下首先我讓我兩個(gè)朋友一人給我發(fā)了一條信息:
得到的結(jié)果:
“怎么用Python代碼實(shí)現(xiàn)微信消息撤回捕捉功能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。