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计算已经过去多少个周末的方法
Jul 25 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
Jun 06 Python
使用Python写一个贪吃蛇游戏实例代码
Aug 21 Python
解决PyCharm的Python.exe已经停止工作的问题
Nov 29 Python
Python3 log10()函数简单用法
Feb 19 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 Python
TensorFlow打印输出tensor的值
Apr 19 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
django中嵌套的try-except实例
May 21 Python
如何理解Python中的变量
Jun 01 Python
Python如何输出百分比
Jul 31 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
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
PHP验证码类ValidateCode解析
2017/01/07 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
Python 文件管理实例详解
2015/11/10 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
教你用一行Python代码实现并行任务(附代码)
2018/02/02 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
董事长职责范文
2013/11/08 职场文书
制冷与电控专业应届生求职信
2013/11/11 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
水利水电专业自荐信
2014/07/08 职场文书
工资收入证明
2014/10/07 职场文书
西游降魔篇观后感
2015/06/15 职场文书
2015年思想品德教学工作总结
2015/07/22 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
单位提档介绍信
2015/10/22 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
mysql 生成连续日期及变量赋值
2022/03/20 MySQL