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 Web框架Tornado运行和部署
Oct 19 Python
浅谈Python的文件类型
May 30 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
Python实现简单的用户交互方法详解
Sep 25 Python
Python实现二叉树的常见遍历操作总结【7种方法】
Mar 06 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
微信公众号token验证失败解决方案
Jul 22 Python
Python3分析处理声音数据的例子
Aug 27 Python
详解pyinstaller生成exe的闪退问题解决方案
Jun 19 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
Python引入多个模块及包的概念过程解析
Sep 21 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
用缓存实现静态页面的测试
2006/12/06 PHP
基于php-fpm 参数的深入理解
2013/06/03 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
javascript History对象原理解析
2020/02/17 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
跟老齐学Python之用while来循环
2014/10/02 Python
使用Python绘制图表大全总结
2017/02/11 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
如何解决安装python3.6.1失败
2020/07/01 Python
python如何使用代码运行助手
2020/07/03 Python
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
毕业生多媒体设计求职信
2013/10/12 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
优化Mysql查询的示例
2022/04/26 MySQL