<>Python + itchat 实现微信机器人聊天(支持自动回复指定群聊)

最近对Python上瘾,闲来无事搞个Python+itchat玩下微信机器人自动回复。

首先要打开cmd输入以下代码,安装requests和itchat(如果两个都安装了的话直接跳过):
pip install requests

pip install itchat
安装完后打开任意Python编译器输入以下代码:
#-*- coding:utf-8 -*- import requests import itchat KEY =
'ccad405a8ff1xxxxxxxxa4380e3b1133' #可以到图灵机器人官网申请一个,免费的 def get_response(msg): #
构造了要发送给服务器的数据 apiUrl= 'http://www.tuling123.com/openapi/api' data = { 'key' :
KEY, 'info' : msg, 'userid' : 'wechat-robot', } try: r = requests.post(apiUrl,
data=data).json() # 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常 return r.get('text')
# 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常 except: #
如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return return # 将会返回一个None #注册获取别人发来的信息方法
@itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture']) def
tuling_reply(msg): print(msg.User['NickName'] +":"+ msg['Text'])
#这里输出给你发微信的人的名字和他发送的内容 reply= get_response(msg['Text']) #调取图灵机器人获取回复 print(reply
+"\n") #打印机器人回复的消息 return reply @itchat.msg_register([itchat.content.TEXT],
isGroupChat=True) #群消息的处理 def print_content(msg): if msg.User["NickName"]==
'你希望自动回复群的名字'or msg.User["NickName"]=='另外一个你希望自动回复群的名字': #这里可以在后面加更多的or msg.User
["NickName"]=='你希望自动回复群的名字' print(msg.User['NickName'] +":"+ msg['Text'])
#打印哪个群给你发了什么消息print(get_response(msg['Text'])+"\n") #打印机器人回复的消息 return
get_response(msg['Text']) else: #其他群聊直接忽略 pass itchat.auto_login(hotReload=True)
itchat.run()
运行后用微信扫码登录即可实现自动回复,这里微信用的是网页版的微信。

<>附 图灵机器人申请网址:http://www.turingapi.com/ <http://www.turingapi.com/>

进去后点击申请自己的专属机器人,申请成功后把上面的KEY换成你的apikey,记得下面那个密匙那个按钮不要打开,否则机器人无法正常使用。

<>注意:机器人能识别的只有文字,官方自带的表情包和红包,而且只能回复文字,其他东西貌似还不能识别和回复。