itchat-python搭建微信机器人(附示例)
itchat是python开源第三方库,用于搭建微信机器人,几十行代码就能帮你实现自动的处理所有信息。比如,添加好友,搭建自动回复机器人,还原撤销信息,分析好友男女比例,地理分布情况,爬朋友圈做数据分析…
本文只是简单实现聊天机器人,想了解更多关于itchat的用法请参照:https://itchat.readthedocs.io/zh/latest/
安装
pipinstallitchat
登录
itchat.auto_login(hotReload=True)
执行后会出现一个二维码,扫码登录。hotReload=True可以保留登录状态,以至于往后的重启程序可以跳过扫码登录。
消息类型
参数 | 类型 |
---|---|
TEXT | 文本 |
MAP | 位置 |
CARD | 名片 |
SHARING | 分享 |
PICTURE | 图片表情 |
RECORDING | 语音 |
ATTACHMENT | 附件 |
VIDEO | 小视频 |
发送消息
send(msg='text',toUserName=None)
- msg:发送的内容
- toUserName:发送对象,None表示自己
内容类型:
- 图片:@img@img_path
- 视频:@vid@vid_path
- 文件:@fil@file_path
ps:接收到的附件路径一般默认存放在当前路径的msg[‘FileName']下
注册会话监听
#TEXT:监听的消息类型 @itchat.msg_register(TEXT) deftext_reply(msg): #过滤掉某人,NickName是昵称 ifmsg.User['NickName']=='xxx': pass else: #return_text=tuling(msg.text) #这种send方法会自己回复自己的消息 #msg.user.send(u'收到了') #只回复对方的消息 returnu'收到了'
图灵聊天机器人
在图灵机器人官网(http://www.tuling123.com)注册账号,创建机器人,如果只是学习的话,可以使用免费版,一个账号最多可以创建5个机器人,一个机器人日调用接口数5000次。
#申请机器人后会拿到一个key key='3c925fbee6f84ad2aa032ab05d4581b0' deftuling(info): url="http://www.tuling123.com/openapi/api?key=%s&info=%s"%(key,info) r=requests.get(url) #返回消息 returnr.json().get('text')
附上完整代码(文本图片群聊)
#coding:utf-8 #@Time:2019/2/2023:32 #@Author:lsn #@File:itchat_demo.py #@Software:PyCharm importitchat importrequests fromitchat.contentimport* key='3c925fbee6f84ad2aa032ab05d4581b0' deftuling(info): url="http://www.tuling123.com/openapi/api?key=%s&info=%s"%(key,info) r=requests.get(url) returnr.json().get('text') @itchat.msg_register(TEXT) deftext_reply(msg): ifmsg.User['NickName']=='xxx': pass else: return_text=tuling(msg.text) #msg.user.send(return_text) returnreturn_text @itchat.msg_register( [PICTURE,RECORDING,ATTACHMENT,VIDEO]) defdownload_files(msg): printmsg['Type'] printmsg['FileName'] msg['Text'](msg['FileName']) return'@%s@%s'%({'Picture':'img','Video':'vid'}.get(msg['Type'],'fil'),msg['FileName']) @itchat.msg_register(TEXT,isGroupChat=True) defgroup_text_reply(msg): group_list=list() #针对指定群回复 group_list.append(u'弹一弹') group_list.append(u'养生游戏分享') #当然如果只想针对@你的人才回复,可以设置ifmsg['isAt']: ifmsg.User['NickName']ingroup_list: returntuling(msg.text) else: pass itchat.auto_login(hotReload=True) itchat.run()
参考:https://www.nhooo.com/article/162809.htm
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。