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之引用和类属性的初步理解
May 15 Python
python实现类的静态变量用法实例
May 08 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
python脚本实现验证码识别
Jun 07 Python
python读取图片并修改格式与大小的方法
Jul 24 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
Tensorflow:转置函数 transpose的使用详解
Feb 11 Python
解决keras backend 越跑越慢问题
Jun 18 Python
如何对python的字典进行排序
Jun 19 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的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
详解JavaScript函数
2015/12/01 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
a标签调用js的方法总结
2019/09/05 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
python看某个模块的版本方法
2018/10/16 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
Python模块相关知识点小结
2020/03/09 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
大学生先进事迹材料
2014/02/16 职场文书
关爱留守儿童标语
2014/06/18 职场文书
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server