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 25 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 Python
Python 打印中文字符的三种方法
Aug 14 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
Feb 18 Python
python如何操作mysql
Aug 17 Python
Python Django 后台管理之后台模型属性详解
Apr 25 Python
Python图像处理之图像拼接
Apr 28 Python
Python基础之元类详解
Apr 29 Python
Python打包为exe详细教程
May 18 Python
Python实现简单的猜单词
Jun 15 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
Smarty中常用变量操作符汇总
2014/10/27 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
php下Memcached入门实例解析
2015/01/05 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
PHP使用redis位图bitMap 实现签到功能
2019/10/08 PHP
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
JavaScript Split()方法
2015/12/18 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
跟老齐学Python之关于类的初步认识
2014/10/11 Python
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
浅析Python多线程下的变量问题
2015/04/28 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
Python Grid使用和布局详解
2018/06/30 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
迎元旦广播稿
2014/02/22 职场文书
辞职信怎么写
2015/02/27 职场文书