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 相关文章推荐
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
python开发利器之ulipad的使用实践
Mar 16 Python
关于Python中空格字符串处理的技巧总结
Aug 10 Python
python的numpy模块安装不成功简单解决方法总结
Dec 23 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
小白入门篇使用Python搭建点击率预估模型
Oct 12 Python
Python读取指定日期邮件的实例
Feb 01 Python
在Python中COM口的调用方法
Jul 03 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 Python
tensorflow图像裁剪进行数据增强操作
Jun 30 Python
TensorFlow的自动求导原理分析
May 26 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 调用远程url的六种方法小结
2009/11/02 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
IE和Firefox下event事件杂谈
2009/12/18 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
Python基础语法(Python基础知识点)
2016/02/28 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
杭州-DOTNET笔试题集
2013/09/25 面试题
上班上网检讨书
2014/01/29 职场文书
学生打架检讨书
2014/10/20 职场文书
政协委员个人总结
2015/03/03 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android