超簡單Python實現微信機器人自動回覆
下面這個小文章適合初學Python的童鞋哦~~~
一個很好用的微信庫:itchat
拿使用圖靈機器人設定自動回覆,讓機器人跟微信好友傻傻的聊天,機器人比小編還會聊天,無論是對美眉還是漢紙,上來就是愛!愛!愛!簡直太辣眼睛!!!用它進行來調戲微信好友,簡直6的一筆!
(記住一條!千萬不能對女票使用,遭遇一萬點傷害)
好啦,下面就來一起看一下如何使用吧!
使用工具:itchat,requests
搭建python開發環境,這個就不用多說了嘛,可自行百度,需要注意一點的就是記得將python安裝路徑加入環境變數~
安裝itchat庫
通過管理員許可權執行命令提示符,直接輸入以下程式碼:
pip install itchat
pip install requests
然後會自動從網上下載資料自行安裝,很簡單,很傻瓜~有木有~python真的好呆萌~~~
獲取一個圖靈機器人API
不要把API想的太複雜,就是一個介面啦,啥?你不明白啥是介面,唉呀~就是一個口子,你能進去,乾點事情或者拿點東西再出來,就這麼個東東~~(額~同學不要想多了,一不留神就開車~~)
實現原理:當我們獲取微信好友發來的訊息時,我們將這個訊息傳給機器人的API,然後它就會根據訊息做出答覆,然後我們再將這個訊息返回給微信好友,就OK啦!
雖然描述的過程比較長,但是機器執行的很快,呼叫這個介面實現的過程真的特別~特別快~~~(哎呀~車輛轉彎,請抓穩扶好~~)
童鞋可以從下面這個官網上註冊帳號,獲取圖靈機器人的API:
註冊成功後,我們就可以獲得下面這個api的key啦,先拿下留用!
(小編將key打碼了,童鞋可以自行獲取無碼的key,咳咳~~)
程式碼實現
說了這麼多,下面可以列程式碼了,童鞋不要緊張,程式碼很少喲~(如果程式碼讓你感覺不舒服,文章底部有整理好的原始碼,童鞋可以拿去自行玩耍。記住,不在太嗨了喲~~~)
第一步:匯入我們需要使用的工具
import itchat import requests import re
第二步:定義一個獲取網頁的函式
原理:上面我們已經提到,將微信好友發來的訊息傳送給圖靈機器人API,以下我們簡稱為小圖。而小圖實際上就是在一個網頁上執行的,下面上圖來看一下:
其中"text"
def getHtmlText(url): try: r = requests.get(url,timeout=30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return ""
第三步:呼叫itchat封裝好的裝飾器
@itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture'])
其中"Text"即表示為文字訊息,除此之外還有其他的圖片、表情等訊息,都可以將此發給小圖~它還很聰明的~~
第四步:定義自動回覆函式
def text_reply(msg): # 判斷一下發件人不是自己 if not msg['FromUserName'] == Name["你的暱稱"]: url = "http://www.tuling123.com/openapi/api?key=(此處填寫您的key)&info=" # 將獲取的資訊附在連結的尾部 url = url + msg['Text'] # 通過定義的網頁抓取函式獲取頁面內容 html = getHtmlText(url) # 以下兩行程式碼用到了正則表示式,感興趣的同學可以查一下哦 message = re.findall(r'\"text\"\:\".*?\"',html) reply = eval(message[0].split(':')[1]) return reply
第五步:定義一個主函式來執行它
if __name__ == '__main__': # 通過itchat掃碼登入微信網頁版 itchat.auto_login() # 獲取所有微信好友的資訊 friends = itchat.get_friends(update=True)[0:] # 使用字典存放好友暱稱與使用者名稱 Name = {} # 好友暱稱 Nic = [] # 好友使用者名稱 User = [] for i in range(len(friends)): Nic.append(friends[i]["NickName"]) User.append(friends[i]["UserName"]) for i in range(len(friends)): Name[Nic[i]] = User[i] itchat.run()
好啦,大功告成啦,有興趣的同學可以一起玩玩看哦~下面附原始碼:
如果內容有錯誤,請看客指出哦,謝謝啦~~~
另外補充一下,小編真的是一位很純潔的小哥哦,嘿嘿嘿~~~
# 原始碼如下: # wechat autoreply import itchat import requests import re # 抓取網頁 def getHtmlText(url): try: r = requests.get(url,timeout=30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return "" # 自動回覆 # 封裝好的裝飾器,當接收到的訊息是Text,即文字訊息 @itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture']) def text_reply(msg): # 當訊息不是由自己發出的時候 if not msg['FromUserName'] == Name["Jestiao"]: # 回覆給好友 url = "http://www.tuling123.com/openapi/api?key=您的小圖key&info=" url = url + msg['Text'] html = getHtmlText(url) message = re.findall(r'\"text\"\:\".*?\"',html) reply = eval(message[0].split(':')[1]) return reply if __name__ == '__main__': itchat.auto_login() # 獲取自己的UserName friends = itchat.get_friends(update=True)[0:] Name = {} Nic = [] User = [] for i in range(len(friends)): Nic.append(friends[i]["NickName"]) User.append(friends[i]["UserName"]) for i in range(len(friends)): Name[Nic[i]] = User[i] itchat.run()