itchat是python开源第三方库,用于搭建微信机器人,几十行代码就能帮你实现自动的处理所有信息。比如,添加好友,搭建自动回复机器人,还原撤销信息,分析好友男女比例,地理分布情况,爬朋友圈做数据分析…
本文只是简单实现聊天机器人,想了解更多关于itchat的用法请参照:https://itchat.readthedocs.io/zh/latest/
安装
1
|
pip install itchat
|
登录
1
|
itchat.auto_login(hotReload = True )
|
执行后会出现一个二维码,扫码登录。hotReload=True可以保留登录状态,以至于往后的重启程序可以跳过扫码登录。
消息类型
参数 | 类型 |
---|---|
TEXT | 文本 |
MAP | 位置 |
CARD | 名片 |
SHARING | 分享 |
PICTURE | 图片表情 |
RECORDING | 语音 |
ATTACHMENT | 附件 |
VIDEO | 小视频 |
发送消息
1
|
send(msg = 'text' ,toUserName = None )
|
- msg:发送的内容
- toUserName:发送对象,None表示自己
内容类型:
- 图片:@img@img_path
- 视频:@vid@vid_path
- 文件:@fil@file_path
ps:接收到的附件路径一般默认存放在当前路径的msg[‘FileName']下
注册会话监听
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#TEXT:监听的消息类型
@itchat .msg_register(TEXT)
def text_reply(msg):
#过滤掉某人,NickName是昵称
if msg.User[ 'NickName' ] = = 'xxx' :
pass
else :
# return_text = tuling(msg.text)
#这种send方法会自己回复自己的消息
# msg.user.send(u'收到了')
#只回复对方的消息
return u '收到了'
|
图灵聊天机器人
在图灵机器人官网(http://www.tuling123.com)注册账号,创建机器人,如果只是学习的话,可以使用免费版,一个账号最多可以创建5个机器人,一个机器人日调用接口数5000次。
1
2
3
4
5
6
7
|
#申请机器人后会拿到一个key
key = '3c925fbee6f84ad2aa032ab05d4581b0'
def tuling(info):
url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (key, info)
r = requests.get(url)
#返回消息
return r.json().get( 'text' )
|
附上完整代码(文本图片群聊)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# coding: utf-8
# @Time : 2019/2/20 23:32
# @Author : lsn
# @File : itchat_demo.py
# @Software: PyCharm
import itchat
import requests
from itchat.content import *
key = '3c925fbee6f84ad2aa032ab05d4581b0'
def tuling(info):
url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (key, info)
r = requests.get(url)
return r.json().get( 'text' )
@itchat .msg_register(TEXT)
def text_reply(msg):
if msg.User[ 'NickName' ] = = 'xxx' :
pass
else :
return_text = tuling(msg.text)
# msg.user.send(return_text)
return return_text
@itchat .msg_register(
[PICTURE, RECORDING, ATTACHMENT, VIDEO])
def download_files(msg):
print msg[ 'Type' ]
print msg[ 'FileName' ]
msg[ 'Text' ](msg[ 'FileName' ])
return '@%s@%s' % ({ 'Picture' : 'img' , 'Video' : 'vid' }.get(msg[ 'Type' ], 'fil' ), msg[ 'FileName' ])
@itchat .msg_register(TEXT, isGroupChat = True )
def group_text_reply(msg):
group_list = list ()
# 针对指定群回复
group_list.append(u '弹一弹' )
group_list.append(u '养生游戏分享' )
# 当然如果只想针对@你的人才回复,可以设置if msg['isAt']:
if msg.User[ 'NickName' ] in group_list:
return tuling(msg.text)
else :
pass
itchat.auto_login(hotReload = True )
itchat.run()
|
参考:http://www.zzvips.com/article/175401.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/auto_mind/article/details/87868705