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处理csv数据的方法
Mar 11 Python
初步探究Python程序的执行原理
Apr 11 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
Python中list初始化方法示例
Sep 18 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
python3之模块psutil系统性能信息使用
May 30 Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
Python判断字符串是否为空和null方法实例
Apr 26 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 Python
python学习之panda数据分析核心支持库
May 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
谈一谈收音机的高放电路
2021/03/02 无线电
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
js使用心得分享
2015/01/13 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
各个系统下的Python解释器相关安装方法
2015/10/12 Python
浅谈Python的文件类型
2016/05/30 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
教师师德教育的自我评价
2013/10/31 职场文书
校本教研工作制度
2014/01/22 职场文书
高二生物教学反思
2014/01/27 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
追悼会答谢词
2015/01/05 职场文书
高考升学宴答谢词
2015/01/20 职场文书