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