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 相关文章推荐
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
Jan 22 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
详解pytorch 0.4.0迁移指南
Jun 16 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
Python性能分析工具Profile使用实例
Nov 19 Python
Python标准库json模块和pickle模块使用详解
Mar 10 Python
python将dict中的unicode打印成中文实例
May 11 Python
python为什么要安装到c盘
Jul 20 Python
Python模拟键盘输入自动登录TGP
Nov 27 Python
python中yield的用法详解
Jan 13 Python
Python中tqdm的使用和例子
Sep 23 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
基于mysql的论坛(4)
2006/10/09 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
JavaScript的Vue.js库入门学习教程
2016/05/23 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
Python 错误和异常小结
2013/10/09 Python
Python科学画图代码分享
2017/11/29 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
详解python配置虚拟环境
2019/04/08 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
大学生个人总结的自我评价
2013/10/05 职场文书
合同专员岗位职责
2013/12/18 职场文书
旅游个人求职信范文
2014/01/30 职场文书
《新型玻璃》教学反思
2014/04/13 职场文书
离婚案件被告代理词
2015/05/23 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书