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 相关文章推荐
Python3读取zip文件信息的方法
May 22 Python
详解Django缓存处理中Vary头部的使用
Jul 24 Python
Python实现公历(阳历)转农历(阴历)的方法示例
Aug 22 Python
numpy向空的二维数组中添加元素的方法
Nov 01 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
selenium处理元素定位点击无效问题
Jun 12 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
Django 响应数据response的返回源码详解
Aug 06 Python
Python编写一个验证码图片数据标注GUI程序附源码
Dec 09 Python
Pycharm调试程序技巧小结
Aug 08 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
pytorch 梯度NAN异常值的解决方案
Jun 05 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根据IP判断地区名信息的示例代码
2014/03/03 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
质检部岗位职责
2013/11/11 职场文书
档案工作个人总结
2015/03/03 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
七一表彰大会简报
2015/07/20 职场文书
婚宴领导致辞
2015/07/28 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
JS如何实现基于websocket的多端桥接平台
2021/05/14 Javascript
Golang 结构体数据集合
2022/04/22 Golang