微信聊天机器人
准备工作:
安装itchat:安装命令pip install itchat
1.导入itchat模块,给文件传输助手发一句话
import itchat itchat.auto_login(hotReload=True) itchat.send("你好,文件传输助手",toUserName='filehelper')
运行代码,扫二维码,也就是登陆网页版微信,会自动将"你好,文件传输助手"传输到手机上。
itchat.auto_login(hotReload=True)的目的是为了让你能够保持登陆,近期可以不用扫二维码。
itchat.send()是发送消息,“”里面是想要发送的内容,toUserName是要发送的对象。在微信内部,文件传输助手就是filehelper。
2.如果想要发送给指定的人。不是简单的将filehelper换掉就OK的。要先搜索你想发送人的备注名。
import itchat itchat.auto_login(hotReload=True) users= itchat.search_friends("星夜") userName = users[0]['UserName'] itchat.send("星夜,你好美",toUserName=userName)
具体了解可以查看https://blog.csdn.net/Lynn_coder/article/details/79436539
3.处理文本信息,让机器重复说的话
from itchat.content import TEXT import itchat @itchat.msg_register(TEXT) def text_reply(msg): print(msg) return msg.text itchat.auto_login(hotReload=True) itchat.run()
4.新建一个文件夹,取名为file,处理图片视频信息,让机器返回同样的消息
import itchat import os from itchat.content import PICTURE,VIDEO @itchat.msg_register([PICTURE , VIDEO]) def text_reply(msg): file_name = os.path.join('file',msg.fileName) msg.download(file_name) #download是将文件流写入到文件名对应的文件 msg_type = { PICTURE: 'img', VIDEO: 'vid' }.get(msg.type,'fil') return '@%s@%s' % (msg_type,file_name) itchat.auto_login(hotReload=True) itchat.run()
5.申请图灵机器人账号,用图灵机器人自动给好友回复文字图片消息
import itchat import os import requests from itchat.content import TEXT,PICTURE,VIDEO,SHARING KEY = '' 此处填上图灵机器人聊天的key def get_response(msg,uid): api_url = 'http://www.tuling123.com/openapi/api' data = {'key':KEY,'info':msg,'userid':uid} r = requests.post(api_url,data=data).json() return r.get('text','') @itchat.msg_register(TEXT) def reply_text(msg): msg_text = msg.text reply = get_response(msg_text, msg.FromUserName) return reply @itchat.msg_register([PICTURE,VIDEO,SHARING]) def download_file(msg): file_name = os.path.join('file',msg.fileName) msg.download(file_name) msg_type = msg.type msg_type = {PICTURE:'img',VIDEO:'vid'}.get(msg_type,'fil') return '@%s@%s' %(msg_type,file_name) itchat.auto_login(hotReload=True) itchat.run()
6. 如果想要在群里回复消息,只需要在每个装饰器括号内容的末尾加上引号里面的内容”,isGroupChat=True“就可以了。装饰器就是以@开头的那一行,代码中标红部分。