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之import机制详解
Jul 03 Python
python使用7z解压apk包的方法
Apr 18 Python
详解Python中的array数组模块相关使用
Jul 05 Python
Python快速从注释生成文档的方法
Dec 26 Python
Django框架实现逆向解析url的方法
Jul 04 Python
python排序函数sort()与sorted()的区别
Sep 18 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
简单了解Python3里的一些新特性
Jul 13 Python
python变量的作用域是什么
May 26 Python
详解python的变量缓存机制
Jan 24 Python
pandas数值排序的实现实例
Jul 25 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
安装APACHE
2007/01/15 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
PHP时间和日期函数详解
2015/05/08 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
python 运算符 供重载参考
2009/06/11 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
社区道德讲堂实施方案
2014/03/21 职场文书
青春奉献演讲稿
2014/05/08 职场文书
企业法人任命书
2015/09/21 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
导游词之岳阳楼
2019/09/25 职场文书