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删除过期文件的方法
May 29 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
Python的网络编程库Gevent的安装及使用技巧
Jun 24 Python
Python基于回溯法子集树模板解决数字组合问题实例
Sep 02 Python
在Python中获取两数相除的商和余数方法
Nov 10 Python
python scp 批量同步文件的实现方法
Jan 03 Python
Django 多环境配置详解
May 14 Python
python list多级排序知识点总结
Oct 23 Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 Python
零基础小白多久能学会python
Jun 22 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
Dec 17 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
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
js如何获取object类型里的键值
2014/02/18 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
很棒的js Tab选项卡切换效果
2016/08/30 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
Python和JavaScript间代码转换的4个工具
2016/02/22 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
Python中单例模式总结
2018/02/20 Python
基于python实现把图片转换成素描
2019/11/13 Python
基于Django实现日志记录报错信息
2019/12/17 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
开放系统互连参考模型
2016/06/29 面试题
Linux文件系统类型
2012/09/16 面试题
高一家长会邀请函
2014/01/12 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
工程采购员岗位职责
2014/03/09 职场文书
计划生育工作总结2015
2015/04/03 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
教师节简报
2015/07/20 职场文书
大学生十八大感想
2015/08/11 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL