python實(shí)現(xiàn)微信機(jī)器人: 登錄微信、消息接收、自動(dòng)回復(fù)功能
安裝wxpy
pip install -U wxpy
登錄微信
# 導(dǎo)入模塊 from wxpy import * # 初始化機(jī)器人,掃碼登陸 bot = Bot()
運(yùn)行以上代碼,會(huì)生成一個(gè)二維碼,通過(guò)圖片掃描二維碼即可登錄微信。
如果是在服務(wù)器上運(yùn)行代碼,無(wú)法顯示圖片的時(shí)候, 可以選擇通過(guò)終端顯示二維碼圖片, 只需要將代碼改成:
from wxpy import * bot = Bot(console_qr=True)
運(yùn)行的效果如下:
當(dāng)然,為了安全,這個(gè)二維碼做了模糊處理
如果你認(rèn)為每次都需要掃描二維碼很麻煩,可以啟用緩存,來(lái)保存自己的登錄狀態(tài):
bot = Bot(console_qr=True, cache_path=True)
發(fā)送消息
首先我們嘗試給自己和文件傳輸助手發(fā)消息:
# 給機(jī)器人自己發(fā)送消息 bot.self.send('Hello World!') # 給文件傳輸助手發(fā)送消息 bot.file_helper.send('Hello World!')
自動(dòng)回復(fù)
可通過(guò) 預(yù)先注冊(cè) 的方式,實(shí)現(xiàn)消息的自動(dòng)處理。
“預(yù)先注冊(cè)” 是指
預(yù)先將特定聊天對(duì)象的特定類型消息,注冊(cè)到對(duì)應(yīng)的處理函數(shù),以實(shí)現(xiàn)自動(dòng)回復(fù)等功能。
注冊(cè)消息
提示
每當(dāng)收到新消息時(shí),將根據(jù)注冊(cè)規(guī)則找到匹配條件的執(zhí)行函數(shù)。
并將 消息對(duì)象 作為唯一參數(shù)傳入該函數(shù)。
將 Bot.register() 作為函數(shù)的裝飾器,即可完成注冊(cè)。
# 獲取所有類型的消息(好友消息、群聊、公眾號(hào),不包括任何自己發(fā)送的消息) # 并將獲得的消息打印到控制臺(tái) @bot.register() def print_others(msg): print(msg)
同時(shí)wxpy也可以給注冊(cè)消息的類型加上限制,
# 回復(fù) my_friend 發(fā)送的消息 @bot.register(my_friend) def reply_my_friend(msg): return 'received: {} ({})'.format(msg.text, msg.type) # 回復(fù)發(fā)送給自己的消息,可以使用這個(gè)方法來(lái)進(jìn)行測(cè)試機(jī)器人而不影響到他人 @bot.register(bot.self, except_self=False) def reply_self(msg): return 'received: {} ({})'.format(msg.text, msg.type) # 打印出所有群聊中@自己的文本消息,并自動(dòng)回復(fù)相同內(nèi)容 # 這條注冊(cè)消息是我們構(gòu)建群聊機(jī)器人的基礎(chǔ) @bot.register(Group, TEXT) def print_group_msg(msg): if msg.is_at: print(msg) msg.reply(meg.text)
我們?cè)O(shè)置一個(gè)自動(dòng)回復(fù)所有消息的功能:
@bot.register() def reply_self(msg): # return 'received: {} ({})'.format(msg.text, msg.type) msg.reply(u'好的呀')
效果如下:
以上所述是小編給大家介紹的python實(shí)現(xiàn)微信機(jī)器人: 登錄微信、消息接收、自動(dòng)回復(fù)功能詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- 10分鐘教你用Python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能
- python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能
- python itchat實(shí)現(xiàn)微信自動(dòng)回復(fù)的示例代碼
- 利用python微信庫(kù)itchat實(shí)現(xiàn)微信自動(dòng)回復(fù)功能
- python實(shí)現(xiàn)微信小程序自動(dòng)回復(fù)
- python微信公眾號(hào)之關(guān)鍵詞自動(dòng)回復(fù)
- Python中re.compile函數(shù)的使用方法
- 關(guān)于Python中compile() 函數(shù)簡(jiǎn)單實(shí)用示例詳解
- Python正則表達(dá)式re.compile()和re.findall()詳解
- Python 正則 re.compile 真的必需嗎
- Python中請(qǐng)不要再用re.compile了
- python內(nèi)置函數(shù)compile(),complex()的使用
相關(guān)文章
讓Django的BooleanField支持字符串形式的輸入方式
這篇文章主要介紹了讓Django的BooleanField支持字符串形式的輸入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Python?Poetrya項(xiàng)目依賴管理安裝使用詳解
這篇文章主要為大家介紹了Python?Poetrya項(xiàng)目依賴管理安裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11淺談tensorflow中幾個(gè)隨機(jī)函數(shù)的用法
今天小編就為大家分享一篇淺談tensorflow中幾個(gè)隨機(jī)函數(shù)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python?subprocess.Popen?實(shí)時(shí)輸出?stdout的解決方法(正確管道寫(xiě)法)
這篇文章主要介紹了Python?subprocess.Popen實(shí)時(shí)輸出stdout正確管道寫(xiě)法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07python服務(wù)器中發(fā)送外部請(qǐng)求的基本步驟
在Python中,服務(wù)器發(fā)送外部請(qǐng)求是一個(gè)常見(jiàn)的操作,尤其是在需要集成不同服務(wù)或API時(shí),有多種庫(kù)可以幫助你完成這項(xiàng)任務(wù),但最流行和廣泛使用的庫(kù)之一是requests,下面給大家分享python服務(wù)器中發(fā)送外部請(qǐng)求的基本步驟,感興趣的朋友一起看看吧2024-08-08python如何獲取列表中每個(gè)元素的下標(biāo)位置
這篇文章主要介紹了python如何獲取列表中每個(gè)元素的下標(biāo)位置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07pygame播放視頻并實(shí)現(xiàn)音視頻同步的解決方案
本篇提供了pygame播放視頻的兩個(gè)方案,第一個(gè)方案是網(wǎng)上找的現(xiàn)成的,第二個(gè)方案則是參考了opencv(主流方案)自己逆向思維做的,還未經(jīng)過(guò)實(shí)際驗(yàn)證,感興趣的朋友跟隨小編一起看看吧2023-11-11Python的numpy庫(kù)下的幾個(gè)小函數(shù)的用法(小結(jié))
這篇文章主要介紹了Python的numpy庫(kù)下的幾個(gè)小函數(shù)的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07