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 rsa 加密解密
Mar 20 Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 Python
python后端接收前端回传的文件方法
Jan 02 Python
python SVM 线性分类模型的实现
Jul 19 Python
python opencv调用笔记本摄像头
Aug 28 Python
python处理document文档保留原样式
Sep 23 Python
python 模拟创建seafile 目录操作示例
Sep 26 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
Python抓包并解析json爬虫的完整实例代码
Nov 03 Python
python tqdm实现进度条的示例代码
Nov 10 Python
python的数学算法函数及公式用法
Nov 18 Python
Python读取pdf表格写入excel的方法
Jan 22 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面试题集锦
2012/03/08 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
JavaScript版代码高亮
2006/06/26 Javascript
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
Google韩国首页图标动画效果
2007/08/26 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
JS常用知识点整理
2017/01/21 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
浅谈js闭包理解
2019/04/01 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
python如何实现word批量转HTML
2020/09/30 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
机电专业个人求职信范文
2013/12/30 职场文书
人事专员的职责
2014/02/26 职场文书
股权转让意向书
2014/04/01 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
法定代表人授权委托书
2014/09/19 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
怎样写辞职信
2015/02/27 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android