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对两个有序列表进行合并和排序的例子
Jun 13 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
Feb 01 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
django 自定义过滤器的实现
Feb 26 Python
Python切片操作去除字符串首尾的空格
Apr 22 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
wxpython绘制圆角窗体
Nov 18 Python
flask实现验证码并验证功能
Dec 05 Python
Python模块 _winreg操作注册表
Feb 05 Python
TensorFlow:将ckpt文件固化成pb文件教程
Feb 11 Python
Python3 如何开启自带http服务
May 18 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学习笔记之一
2011/01/17 PHP
php中的常用魔术方法总结
2013/08/02 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
js 文件引入实现代码
2010/04/23 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python模拟百度登录实例详解
2016/01/20 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
python里运用私有属性和方法总结
2019/07/08 Python
python实现井字棋小游戏
2020/03/04 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
技校毕业生个人学习的自我评价
2014/02/21 职场文书
太太口服液广告词
2014/03/20 职场文书
思想政治表现评语
2015/01/04 职场文书
党性修养心得体会2016
2016/01/21 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers