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之yield表达式学习
Sep 02 Python
Python中使用PIL库实现图片高斯模糊实例
Feb 08 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
tensorflow 获取变量&打印权值的实例讲解
Jun 14 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
利用arcgis的python读取要素的X,Y方法
Dec 22 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
Python进程间通信Queue消息队列用法分析
May 22 Python
pandas 对日期类型数据的处理方法详解
Aug 08 Python
Python3爬虫关于代理池的维护详解
Jul 30 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
PHP获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
简单PHP上传图片、删除图片实现代码
2010/05/12 PHP
php调用mysql数据 dbclass类
2011/05/07 PHP
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
python正则表达式re模块详解
2014/06/25 Python
Python实现处理管道的方法
2015/06/04 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
便利店投资创业计划书
2014/02/08 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
土地租赁协议书
2015/01/29 职场文书
公司开业致辞
2015/07/29 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
Python3.10的一些新特性原理分析
2021/09/15 Python
JS数组方法some、every和find的使用详情
2021/10/05 Javascript
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL