
機器人瓦力
利用python做一個微信聊天機器人早已不是黑科技,網上有很多通過圖靈機器人接口和itchat實現(xiàn)的教程。
然而圖靈接口現(xiàn)在限制調用次數(shù)(100次/日),無法愉快的玩耍,所以我找了個替代方案
青云客智能聊天機器人API
接口url:http://api.qingyunke.com/api.php?key=free&appid=0&msg=
原理是在msg=后面加入發(fā)送的信息作為請求就可以收到回復,例如發(fā)送“你好”:
http://api.qingyunke.com/api.php?key=free&appid=0&msg=你好
回復格式為:
{"result":0,"content":"不要每次都用你好做開場白行不,忒俗了"}
具體實現(xiàn)方法,首先安裝itchat:
pip install itchat
然后代碼如下:
# -*- coding: utf-8 -*-
import itchat
import urllib.parse
from urllib import request
def get_response(msg):
s = urllib.parse.quote(msg)
url = "http://api.qingyunke.com/api.php?key=free&appid=0&msg=%s" % s
reply = request.urlopen(url,
data=None,
timeout=10).read().decode()
repdic = eval(reply)
return repdic['content']
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
# 設置一個默認回復,在出現(xiàn)問題仍能正?;貜托畔? defaultReply = '呵呵呵呵' + msg['Text']
reply = get_response(msg['Text'])
# a or b 表示,如有a有內容,那么返回a,否則返回b
return reply or defaultReply
#主程序
# 使用熱啟動,不需要多次掃碼
itchat.auto_login(hotReload=True)
itchat.run()
需要注意的是,由于默認環(huán)境是ascii,msg含有中文的話是沒法直接解析的,會引發(fā)報錯。
需要用urllib.parse.quote()處理后再接到url后面。
運行后會彈出二維碼,掃描登陸后即可開啟自動回復,機器人會代為回答所有的私聊信息。
有一個問題是,由于itchat基于網頁版微信,而目前新注冊微信號不能登陸網頁版微信(貌似出于安全考慮),所以只能用比較老的微信號測試啦。
運行效果如圖:

運行效果
參考文章:
https://blog.csdn.net/hfuturer/article/details/80721283
特別感謝:
http://www.qingyunke.com/