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使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
Python 专题三 字符串的基础知识
Mar 19 Python
Python实现简单的语音识别系统
Dec 13 Python
JS设计模式之责任链模式实例详解
Feb 03 Python
PyQt5 QSerialPort子线程操作的实现
Apr 21 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
padas 生成excel 增加sheet表的实例
Dec 11 Python
python 列表中[ ]中冒号‘:’的作用
Apr 30 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 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文档更新介绍
2011/07/22 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
基于jquery的tab切换 js原理
2010/04/01 Javascript
Javascript Object.extend
2010/05/18 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
JavaScript返回0-1之间随机数的方法
2015/04/06 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
TypeScript入门-基本数据类型
2017/03/28 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
使用PDB简单调试Python程序简明指南
2015/04/25 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
销售团队激励口号
2014/06/06 职场文书
创新社会管理心得体会
2014/09/12 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
2016十一国庆节感言
2015/12/09 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript