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实现的数据结构与算法之链表详解
Apr 22 Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
Django框架中间件(Middleware)用法实例分析
May 24 Python
Django框架设置cookies与获取cookies操作详解
May 27 Python
Python是什么 Python的用处
May 26 Python
Django如何在不停机的情况下创建索引
Aug 02 Python
Python如何测试stdout输出
Aug 10 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
Pycharm编辑器功能之代码折叠效果的实现代码
Oct 15 Python
python 批量压缩图片的脚本
Jun 02 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附件下载中文名称乱码的解决方法
2015/12/17 PHP
php简单获取复选框值的方法
2016/05/11 PHP
学习PHP session的传递方式
2016/06/15 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
div模拟滚动条效果示例代码
2013/10/16 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
详解Angular 自定义结构指令
2017/06/21 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python的Flask框架中web表单的教程
2015/04/20 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
商场消防管理制度
2014/01/12 职场文书
创先争优活动方案
2014/02/12 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
2014年除四害工作总结
2014/12/06 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
结婚保证书
2015/01/16 职场文书
新闻稿格式范文
2015/07/18 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
python 利用PyAutoGUI快速构建自动化操作脚本
2021/05/31 Python
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技