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实现正则匹配检索远端FTP目录下的文件
Mar 25 Python
Python中使用摄像头实现简单的延时摄影技术
Mar 27 Python
python 生成器协程运算实例
Sep 04 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
Jan 31 Python
python中实现数组和列表读取一列的方法
Apr 03 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 Python
Python类和对象的定义与实际应用案例分析
Dec 27 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
tensorflow自定义激活函数实例
Feb 04 Python
使用python自动追踪你的快递(物流推送邮箱)
Mar 17 Python
python中round函数保留两位小数的方法
Dec 04 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检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
原生js写的放大镜效果
2012/08/22 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
jQuery中 delegate使用的问题
2015/07/03 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
Python验证码识别的方法
2015/07/10 Python
python八大排序算法速度实例对比
2017/12/06 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
将python依赖包打包成window下可执行文件bat方式
2019/12/26 Python
django 模版关闭转义方式
2020/05/14 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
人力资源管理专业学生自我评价
2013/11/20 职场文书
商务会议邀请函
2014/01/09 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs