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对字典进行排序实例
Sep 25 Python
django 修改server端口号的方法
May 14 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
PyQt4实时显示文本内容GUI的示例
Jun 14 Python
关于Python-faker的函数效果一览
Nov 28 Python
如何使用python传入不确定个数参数
Feb 18 Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
Jun 17 Python
Django静态文件加载失败解决方案
Aug 26 Python
python实现经纬度采样的示例代码
Dec 10 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 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/10 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
php编写简单的文章发布程序
2015/06/18 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
jQuery 名称冲突的解决方法
2011/04/08 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
深入理解node.js http模块
2018/01/24 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
JavaScript实现星级评价效果
2019/05/17 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
Vue实现图书管理案例
2021/01/20 Vue.js
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
python简单读取大文件的方法
2016/07/01 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
Python根据成绩分析系统浅析
2019/02/11 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
咖啡蛋糕店创业计划书
2014/01/28 职场文书
《苏珊的帽子》教学反思
2014/04/07 职场文书
生物科学专业自荐书
2014/06/20 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
总结Python常用的魔法方法
2021/05/25 Python
MySQL Server 层四个日志
2022/03/31 MySQL