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 22 Python
Python操作MySQL简单实现方法
Jan 26 Python
Python中的高级数据结构详解
Mar 27 Python
Python2.x版本中cmp()方法的使用教程
May 14 Python
Django权限机制实现代码详解
Feb 05 Python
对python中的iter()函数与next()函数详解
Oct 18 Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
postman模拟访问具有Session的post请求方法
Jul 15 Python
python的dict判断key是否存在的方法
Dec 09 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 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+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
JavaScript中链式调用之研习
2011/04/07 Javascript
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
利用python实现数据分析
2017/01/11 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
python 杀死自身进程的实现方法
2019/07/01 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
实例代码讲解Python 线程池
2020/08/24 Python
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
国庆节文艺活动方案
2014/02/03 职场文书
供货协议书范本
2014/04/22 职场文书
网络营销计划
2015/01/17 职场文书
演讲比赛通讯稿
2015/07/18 职场文书
筑梦中国心得体会
2016/01/18 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android
Python机器学习之底层实现KNN
2021/06/20 Python
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
十大最强岩石系宝可梦,怪颚龙实力最强,第七破坏力很强
2022/03/18 日漫
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技