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自动安装pip
Apr 24 Python
Python数据结构之翻转链表
Feb 25 Python
Python实现图片转字符画的示例
Aug 22 Python
python内置函数:lambda、map、filter简单介绍
Nov 16 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
Python Paramiko模块的使用实际案例
Feb 01 Python
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
使用python将mysql数据库的数据转换为json数据的方法
Jul 01 Python
Django中使用session保持用户登陆连接的例子
Aug 06 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
Python中求对数方法总结
Mar 10 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 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中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
Javascript之String对象详解
2016/06/08 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
layui table 参数设置方法
2018/08/14 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python实现单链表的方法示例
2019/09/03 Python
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
护理专业个人求职简历的自我评价
2013/10/13 职场文书
房地产销售经理岗位职责
2014/01/01 职场文书
2014年情人节活动方案
2014/02/16 职场文书
教师党员承诺书
2014/03/25 职场文书
演讲比赛策划方案
2014/06/11 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
颐和园导游词
2015/01/30 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers