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批量创建迅雷任务及创建多个文件
Feb 13 Python
Python开发的实用计算器完整实例
May 10 Python
TensorFlow 滑动平均的示例代码
Jun 19 Python
python爬虫简单的添加代理进行访问的实现代码
Apr 04 Python
Python何时应该使用Lambda函数
Jul 02 Python
10款最好的Python开发编辑器
Jul 03 Python
pandas计算最大连续间隔的方法
Jul 04 Python
python 执行终端/控制台命令的例子
Jul 12 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 Python
pandas中DataFrame重置索引的几种方法
May 24 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 中文处理技巧
2010/04/25 PHP
实用的简单PHP分页集合包括使用方法
2013/10/21 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
js 判断 enter 事件
2009/02/12 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
Python中逗号的三种作用实例分析
2015/06/08 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
世界经理人咨询有限公司面试
2014/09/23 面试题
函授毕业自我鉴定
2013/12/19 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
幼儿园庆六一活动方案
2014/03/06 职场文书
实习报告评语
2014/04/26 职场文书
趣味运动会开幕词
2015/01/28 职场文书
教师节主持词开场白
2015/05/29 职场文书
物业管理交接协议书
2016/03/24 职场文书
一行Python命令实现批量加水印
2022/04/07 Python