itchat-python搭建微信机器人(附示例)


Posted in Python onJune 11, 2019

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://3water.com/article/162809.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python之自动获取公网IP的实例讲解
Oct 01 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
windows下python和pip安装教程
May 25 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 Python
python适合人工智能的理由和优势
Jun 28 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 Python
python字典的常用方法总结
Jul 31 Python
利用python实现逐步回归
Feb 24 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
Python安装Bs4的多种方法
Nov 28 Python
python中添加模块导入路径的方法
Feb 03 Python
python itchat实现调用微信接口的第三方模块方法
Jun 11 #Python
python 将字符串完成特定的向右移动方法
Jun 11 #Python
python itchat给指定联系人发消息的方法
Jun 11 #Python
使用Flask-Cache缓存实现给Flask提速的方法详解
Jun 11 #Python
使用Python实现将list中的每一项的首字母大写
Jun 11 #Python
Python中@property的理解和使用示例
Jun 11 #Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
Jun 11 #Python
You might like
根德YB400的电路分析
2021/03/02 无线电
PHP 多进程 解决难题
2009/06/22 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
Python验证码识别处理实例
2015/12/28 Python
Python卸载模块的方法汇总
2016/06/07 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
Django的models中on_delete参数详解
2019/07/16 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
大学毕业的自我鉴定
2013/10/08 职场文书
大学生简单自荐信
2013/11/10 职场文书
探亲假请假条
2014/04/11 职场文书
国王的演讲观后感
2015/06/03 职场文书
Python中递归以及递归遍历目录详解
2021/10/24 Python
基于Python实现西西成语接龙小助手
2022/08/05 Golang