python實現微信自動回覆和群聊助手
本教程的作用
零基礎手把手教你打造一款微信機器人,包括好友聊天自動回覆和群聊助手兩個部分,零基礎!話不多說,下面開始實戰編碼。
第一部分:好友聊天自動回覆
第一步,安裝python環境。
開啟python官網 ofollow,noindex">https://www.python.org/downloads/ ,下載與你的電腦系統相匹配的python發行版本,推薦python3.5-python3.6,版本太高了可能有許多未知的bug,太低了相容性不太好。
第二步,安裝itchat庫
在命令列下輸入 pip install itchat
完成安裝
第三步,編寫程式碼
核心程式碼如下:
#coding=utf8 import itchat # 當接收到的訊息是Text,即文字訊息 #註冊re_msg的意義在於,告訴itchat每次有符合特定條件的訊息,itchat要把訊息作為引數,去呼叫re_msg。 @itchat.msg_register('Text') def text_reply(msg): #message:取出msg裡面的文字訊息 message = msg['Text'] # 回覆給好友 replay = u'肖濤已在電腦上登陸網頁微信,但暫時無法進行交流,可以給他傳送電腦QQ訊息哈' #主要是一些關鍵詞設定 # if B in A 如果 A中有B的話 if u'幹什麼' in message: replay = u'在忙呢' elif u'逼' in message: replay = u'含有敏感詞彙,請注意言辭' elif u'生氣' in message: replay = u'生氣對身體不好' elif u'?' inmessage: replay = u'哈哈,我也不知道' elif u'不理你' in message: replay = u'乖,忙完給你買糖吃' elif u'濤' in message: replay = u'他是我主人' elif u'厲害' in message: replay = u'不不不,辣雞一個' elif u'你好' in message: replay = u'你好哇' elif u'好吧' in message: replay = u'再見' return replay #彈出掃碼登入介面,引數這樣設定的好處是短時間內退出程式,再次登入可以不用掃碼 itchat.auto_login(hotReload=True) #開啟自動回覆 itchat.run()
以上程式碼都是本人親自編寫,如需轉載請私信我。
程式碼截至2018/11/30本人除錯有效,最新的程式碼更新在我的github: PythonLearning/blob/master/python%E5%B0%8F%E9%A1%B9%E7%9B%AE/itchat_wechat/auto_replay.py" target="_blank" rel="nofollow,noindex">auto_replay.py 如有問題歡迎評論。
執行程式碼
執行之後,會彈出一個二維碼,用微信掃一掃登入網頁版微信之後,這份程式碼就會接管你的訊息通知。下面是一個簡單的效果圖

20180331100337372.png
第二部分:群聊助手
第一步是點對點的訊息自動回覆,本部分實現的是點對多、在群中的訊息自動回覆。請確認上一部分實現無誤之後再來嘗試第二部分,因為第二部分需要第一部分的環境配置做支撐。
編寫程式碼
import itchat import requests def get_response(msg): apiUrl = 'http://www.tuling123.com/openapi/api'#改成你自己的圖靈機器人的api 'key': 'ce697b3fc8b54d5f88c2fa59772cb2cf',# Tuling Key 'info': msg,# 這是我們發出去的訊息 'userid': 'wechat-robot',# 這裡可隨意修改 } # 通過如下命令傳送一個post請求 r = requests.post(apiUrl, data=data).json() return r.get('text') @itchat.msg_register(itchat.content.TEXT) #用於接收來自朋友間的對話訊息#如果不用這個,朋友發的訊息便不會自動回覆 def print_content(msg): return get_response(msg['Text']) #用於接收群裡面的對話訊息 @itchat.msg_register([itchat.content.TEXT], isGroupChat=True) def print_content(msg): return get_response(msg['Text']) itchat.auto_login(True) itchat.run()
接入圖靈機器人
打卡圖靈機器人官網, http://www.tuling123.com/ ,註冊賬號,新建一個機器人,如下圖

20180718175512463.png
把圖中的apikey替換到程式碼裡就行,如果你要用我的,我也無法拒絕,畢竟我的apikey也貼出來了。
執行效果

和上一個效果圖不同的是,這是在一個群裡的訊息
簡要原理
一但接收到資訊,就會呼叫get_response()方法,把訊息傳給圖靈機器人,然後圖靈機器人把回覆資訊再返回給微信。
截至2018/11/30程式碼執行無誤,最新更新在我的github: grouphandler.py
如有問題請評論,如需轉載請私信我。
後記
本篇文章參考了我的兩篇csdn部落格
https://blog.csdn.net/ygdxt/article/details/79766197
https://blog.csdn.net/ygdxt/article/details/81101020
在這裡推薦兩個python程式碼倉庫:
一個是 PythonLearning ,這裡面有我學習python的課程學習資料、以及一些我實戰編寫的程式碼,
另一個是 PythonSpider ,這裡面主要是一些我寫的python實現的爬蟲。
更多的請訪問我的github,歡迎star,fork.
另外歡迎關注微信公眾號:inspurer
在執行程式碼的過程遇到什麼問題歡迎評論。
如果你覺得本篇文章不錯,不妨打賞一下,謝謝。