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 相关文章推荐
打开电脑上的QQ的python代码
Feb 10 Python
Python实现获取某天是某个月中的第几周
Feb 11 Python
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
Mar 30 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
快速入手Python字符编码
Aug 03 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
python判断文件是否存在,不存在就创建一个的实例
Feb 18 Python
python try 异常处理(史上最全)
Mar 07 Python
使用django的ORM框架按月统计近一年内的数据方法
Jul 18 Python
Python csv模块使用方法代码实例
Aug 29 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
解决Pytorch中关于model.eval的问题
May 22 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生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
vue-cli如何添加less 以及sass
2017/07/06 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
python进行TCP端口扫描的实现
2018/12/21 Python
python爬虫之自制英汉字典
2019/06/24 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
小学生操行评语
2014/04/22 职场文书
公关活动策划方案
2014/05/25 职场文书
酒店节能减排方案
2014/05/26 职场文书
小学生读书活动总结
2014/06/30 职场文书
公司户外活动总结
2014/07/04 职场文书
社区活动总结
2015/02/04 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python