微信聊天机器人

准备工作:

安装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“就可以了。装饰器就是以@开头的那一行,代码中标红部分。


posted @ 2018-08-11 00:16  o云淡风轻o  阅读(967)  评论(0编辑  收藏  举报