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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
Python实现身份证号码解析
Sep 01 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
利用python为运维人员写一个监控脚本
Mar 25 Python
python中强大的format函数实例详解
Dec 05 Python
Python调用服务接口的实例
Jan 03 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
python实现PolynomialFeatures多项式的方法
Jan 06 Python
Python爬虫后获取重定向url的两种方法
Jan 19 Python
Python基础之操作MySQL数据库
May 06 Python
Pytorch使用shuffle打乱数据的操作
May 20 Python
Python 数据可视化之Bokeh详解
Nov 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/02/16 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
angular5 httpclient的示例实战
2018/03/12 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
layui lay-verify form表单自定义验证规则详解
2019/09/18 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
python实现证件照换底功能
2019/08/20 Python
django教程如何自学
2020/07/31 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
消防应急演练方案
2014/02/12 职场文书
小学生元旦感言
2014/02/26 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
参赛口号
2014/06/16 职场文书
报到证办理个人委托书
2014/10/06 职场文书