itchat-python搭建微信机器人

itchat-python搭建微信机器人

itchat是python开源第三方库,用于搭建微信机器人,几十行代码就能帮你实现自动的处理所有信息。比如,添加好友,搭建自动回复机器人,还原撤销信息,分析好友男女比例,地理分布情况,爬朋友圈做数据分析…
本文只是简单实现聊天机器人,想了解更多关于itchat的用法请参照:https://itchat.readthedocs.io/zh/latest/

安装

pip install itchat

登录

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)
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次。

#申请机器人后会拿到一个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')

附上完整代码(文本图片群聊)

# 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()

参考:https://blog.csdn.net/enweitech/article/details/79585043

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值