python 微信机器人_Python 微信机器人
一、寫在前邊的話
如何做一個(gè)自動(dòng)回復(fù)的微信機(jī)器人?機(jī)器人的功能有,自動(dòng)加好友,關(guān)鍵字回復(fù),等等,它甚至可以成為你的私人管家,只要你的代碼到位。今天,主要講解下,微信機(jī)器人-圖靈版。
二、準(zhǔn)備
1.python 環(huán)境(這是必備的,建議3.6)
2.圖靈機(jī)器人 key
簡單說下 key 的獲取,注冊網(wǎng)址(http://www.tuling123.com/),注冊后選擇一個(gè)機(jī)器人類型,比如:
image
設(shè)置好機(jī)器人后,就可以獲取到了我們想要的 apikey
image
需要注意的事,新手版每天只能回復(fù) 1000條,有更多的需求,具體請看官網(wǎng)。
image
三、代碼邏輯
先講講原理吧,自動(dòng)回復(fù)機(jī)器人,主要使用的事itchat的py庫,這個(gè)庫很強(qiáng)大,以后會(huì)將它的具體使用,比如防撤回機(jī)制,關(guān)鍵字回復(fù),私人管家等等等,itchat 獲取到了信息,將A發(fā)送的內(nèi)容發(fā)送到圖靈后臺(tái),進(jìn)行一次網(wǎng)絡(luò)數(shù)據(jù)請求,在將請求回來的數(shù)據(jù)發(fā)到A上。回復(fù)的內(nèi)容是由圖靈控制的,免費(fèi)版,我們也不能自定義回復(fù)內(nèi)容。
四、代碼展示
純凈版
#coding=utf8
import requests
import itchat
# KEY5 = '97dcfc0273ae4636951391819c372a39' #換成自己的key
from itchat.content import FRIENDS
def get_response(msg):
apiUrl = 'http://www.tuling123.com/openapi/api'
data = {
'key' : KEY5,
'info' : msg,
'userid' : 'wechat-robot',
}
try:
r = requests.post(apiUrl, data=data).json()
return r.get('text')
except:
return
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
defaultReply = 'I received: ' + msg['Text']
reply = get_response(msg['Text'])
return reply or defaultReply
@itchat.msg_register(FRIENDS)
def add_friend(msg):
itchat.add_friend(**msg['Text'])
itchat.send_msg('Nice to meet you!', msg['RecommendInfo']['UserName'])
itchat.login()
itchat.run()
注釋版
#coding=utf8
import requests
import itchat
# KEY5 = '97dcfc0273ae4636951391819c372a39'
from itchat.content import FRIENDS
KEY5 = '43b32e225ff34302a2c73ef4a5e790d5'
def get_response(msg):
# 這里我們就像在“3. 實(shí)現(xiàn)最簡單的與圖靈機(jī)器人的交互”中做的一樣
# 構(gòu)造了要發(fā)送給服務(wù)器的數(shù)據(jù)
apiUrl = 'http://www.tuling123.com/openapi/api'
data = {
'key' : KEY5,
'info' : msg,
'userid' : 'wechat-robot',
}
try:
r = requests.post(apiUrl, data=data).json()
# 字典的get方法在字典沒有'text'值的時(shí)候會(huì)返回None而不會(huì)拋出異常
return r.get('text')
# 為了防止服務(wù)器沒有正常響應(yīng)導(dǎo)致程序異常退出,這里用try-except捕獲了異常
# 如果服務(wù)器沒能正常交互(返回非json或無法連接),那么就會(huì)進(jìn)入下面的return
except:
# 將會(huì)返回一個(gè)None
return
# 這里是我們在“1. 實(shí)現(xiàn)微信消息的獲取”中已經(jīng)用到過的同樣的注冊方法
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
# 為了保證在圖靈Key出現(xiàn)問題的時(shí)候仍舊可以回復(fù),這里設(shè)置一個(gè)默認(rèn)回復(fù)
defaultReply = 'I received: ' + msg['Text']
# 如果圖靈Key出現(xiàn)問題,那么reply將會(huì)是None
reply = get_response(msg['Text'])
# a or b的意思是,如果a有內(nèi)容,那么返回a,否則返回b
# 有內(nèi)容一般就是指非空或者非None,你可以用`if a: print('True')`來測試
return reply or defaultReply
# 收到好友邀請自動(dòng)添加好友
@itchat.msg_register(FRIENDS)
def add_friend(msg):
itchat.add_friend(**msg['Text']) # 該操作會(huì)自動(dòng)將新好友的消息錄入,不需要重載通訊錄
itchat.send_msg('Nice to meet you!', msg['RecommendInfo']['UserName'])
# 為了讓實(shí)驗(yàn)過程更加方便(修改程序不用多次掃碼),我們使用熱啟動(dòng)
itchat.login()
# itchat.auto_login(hotReload=True)
itchat.run()
五、總結(jié)
以上就是微信機(jī)器人的簡單應(yīng)用,你學(xué)會(huì)了么?itchat 真的是一個(gè)特別吊的庫,我們下一期講微信防撤回。
如果你對(duì)微信機(jī)器人的使用有問題,歡迎公眾號(hào)留言,我的公眾號(hào)是MAndroid,我會(huì)盡心的為你解答的,我是Lovesosoi,一個(gè)集Android 與 python 技術(shù)于一身的開發(fā)者。
總結(jié)
以上是生活随笔為你收集整理的python 微信机器人_Python 微信机器人的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xgboost分类_XGBoost(Ex
- 下一篇: python爬虫什么网站都能爬吗_pyt