python使用itchat库实现微信机器人(好友聊天、群聊天)


Posted in Python onJanuary 04, 2018

itchat是一个开源的微信个人号接口,可以使用该库进行微信网页版中的所有操作,比如:所有好友、添加好友、拉好友群聊、微信机器人等等。详细用户请看文档介绍,在这里。

本文主要使用该库完成一个能够处理微信消息的的图灵机器人,包括好友聊天、群聊天。

1、itchat库的安装

pip install itchat

安装完成后运行以下代码,会出现出现一张二维码,扫码登陆之后将会登陆微信网页。

2、登陆

import itchat
# 登陆
itchat.auto_login()  # 可设置hotReload = True
# 运行并保持在线状态
itchat.run()

此外,itchat 也提供短时间内断线重连的功能,只需要添加hotReload = True参数,下次登陆时不需要通过扫描二维码,只需要在手机端确认登陆即可。

3、消息的发送

itchat 库可以发送 文本、图片、视频、附件等内容,如向微信文件传输助手发送消息,可这样:

itchat.send('Hello', toUserName='filehelper')

toUserName 为要向发送消息的人的微信号,可以在微信手机端点击查询,也可以使用itchat库中的search_friends函数来进行查找,返回其微信号,详细用法,自行查找官方文档。

4、消息的接收

###################### 完整代码##############################
# 加载库
from itchat.content import *
import requests
import json
import itchat
itchat.auto_login(hotReload = True)
# 调用图灵机器人的api,采用爬虫的原理,根据聊天消息返回回复内容
def tuling(info):
  appkey = "e5ccc9c7c8834ec3b08940e290ff1559"
  url = "http://www.tuling123.com/openapi/api?key=%s&info=%s"%(appkey,info)
  req = requests.get(url)
  content = req.text
  data = json.loads(content)
  answer = data['text']
  return answer
# 对于群聊信息,定义获取想要针对某个群进行机器人回复的群ID函数
def group_id(name):
  df = itchat.search_chatrooms(name=name)
  return df[0]['UserName']
# 注册文本消息,绑定到text_reply处理函数
# text_reply msg_files可以处理好友之间的聊天回复
@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING])
def text_reply(msg):
  itchat.send('%s' % tuling(msg['Text']),msg['FromUserName'])
@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])
def download_files(msg):
  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):
  # 当然如果只想针对@你的人才回复,可以设置if msg['isAt']: 
  item = group_id(u'想要设置的群的名称') # 根据自己的需求设置
  if msg['ToUserName'] == item:
    itchat.send(u'%s' % tuling(msg['Text']), item)
itchat.run()

那么,下面你的好友、微信群可以愉快的跟图灵机器人聊天啦~~~

总结

以上所述是小编给大家介绍的python使用itchat库实现微信机器人(好友聊天、群聊天),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python中运行并行任务技巧
Feb 26 Python
Python2.x版本中cmp()方法的使用教程
May 14 Python
python ddt实现数据驱动
Mar 14 Python
在Pycharm中调试Django项目程序的操作方法
Jul 17 Python
解决python3 requests headers参数不能有中文的问题
Aug 21 Python
python安装本地whl的实例步骤
Oct 12 Python
python实现文件批量编码转换及注意事项
Oct 14 Python
python实现一个点绕另一个点旋转后的坐标
Dec 04 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
Python如何定义接口和抽象类
Jul 28 Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 #Python
Python中实现最小二乘法思路及实现代码
Jan 04 #Python
Python找出最小的K个数实例代码
Jan 04 #Python
Python编程把二叉树打印成多行代码
Jan 04 #Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 #Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 #Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 #Python
You might like
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
AngularJS实现页面定时刷新
2017/03/14 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
Python pass详细介绍及实例代码
2016/11/24 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
python实现TF-IDF算法解析
2018/01/02 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
Python读取yaml文件的详细教程
2020/07/21 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
中英文求职信范文
2014/01/27 职场文书
党员公开承诺书范文
2014/03/25 职场文书
2014年国庆标语
2014/06/30 职场文书
承租经营合作者协议书
2014/10/01 职场文书