Python itchat模块的使用,利用图灵机器人进行微信消息自动回复
一、下载安装itchat模块

二、小实验:获取微信好友头像信息
这需要用itchat模块中的一个方法
itchat.get_friends()#获取微信所有微信好友信息
现在我们导入itchat,打印一下,看看好友信息有哪些字段数据
import itchat
#itchat.login()生成一个登陆二维码,此方式每次程序运行都需要扫码
itchat.auto_login(hotReload=True)#持续登录,只用扫一次二维码即可
friends = itchat.get_friends()#获取微信所有好友信息
for i in friends:
print(i)
这里只拿出几个常用字段说明:
UserName:微信号唯一标识符
NickName:微信名
HeadImgUrl:头像url
RemarkName:备注
Signature:签名
Province:省份
City:城市
从好友信息对象中获取头像图片并存储:
import itchat
#itchat.login()生成一个登陆二维码,此方式每次程序运行都需要扫码
itchat.auto_login(hotReload=True)#持续登录,只用扫一次二维码即可
friends = itchat.get_friends()#获取微信所有好友信息
print(friends)
for i in friends:
img = itchat.get_head_img(userName=i['UserName'])#获取好友头像
path = r'C:\Users\Administrator\PycharmProjects\untitled\Test\微信好友:'+i['RemarkName']+'.jpg'
with open(path,'wb') as f:
f.write(img)
三、使用图灵机器人实现微信自动回复
进入图灵机器人官方网站创建机器人

记录机器人的apikey
进入帮助中心,找到apiv2.0接入教程,里面会有详细的对接教程及一些参数的说明

然后就可以开始通过python itchat和图灵机器人进行对接,实现自动回复消息
import itchat
import requests
import json
def get_response(msg):
url = 'http://openapi.tuling123.com/openapi/api/v2'
data = {
"reqType":0,
"perception": {
"inputText": {
"text": msg
},
"inputImage": {
"url": "imageUrl"
},
"selfInfo": {
"location": {
"city": "北京",
"province": "北京",
"street": "信息路"
}
}
},
"userInfo": {
"apiKey": "图灵机器人apikey号",
"userId": "what"#userID随便填一个字符
}
}
data = json.dumps(data)#把data变成json格式
response = requests.post(url,data=data).json()#打印出来是个字典
#print(response['results'][0]['values']['text'])#从数据中取出机器人回复的消息文字
return(response['results'][0]['values']['text'])
#get_response('你有什么事吗')#模拟好友发送信息
#python3中可以使用json模块来对json数据进行编解码
#它包含了两个函数:
#json.dumps()对数据进行编码
#json.loads()对数据进行解码
itchat.auto_login(hotReload=True)#保持登录
@itchat.msg_register(itchat.content.TEXT)#装饰器,对下面的函数添加新功能
def auto_reply(message):
#print(message)
only_reply_info = '哈哈哈,你又上当了!'#设置指定回复消息
friend_info = message['Text']#获取好友发送的文本信息
friend_id = message['FromUserName']#获取好友id
reply_info = get_response(friend_info)#将好友信息发送给图灵机器人
only_friend_info = itchat.search_friends(name='微信备注名')#获取指定好友发送的消息
if friend_id == only_friend_info[0]['UserName']:
itchat.send(msg=only_reply_info, toUserName=friend_id)#规定指定联系人回复消息
else:
itchat.send(msg=reply_info,toUserName=friend_id)#正常机器人智能回复
if __name__ == "__main__":
itchat.run()
Python itchat模块的使用,利用图灵机器人进行微信消息自动回复的更多相关文章
- python 全栈开发,Day123(图灵机器人,web录音实现自动化交互问答)
昨日内容回顾 . 百度ai开放平台 . AipSpeech技术,语言合成,语言识别 . Nlp技术,短文本相似度 . 实现一个简单的问答机器人 . 语言识别 ffmpeg (目前所有音乐,视频领域,这 ...
- Python 使用图灵机器人实现微信聊天功能
首先需要去图灵官网创建一个属于自己的机器人然后得到apikey. 一.自动与指定好友聊天 # -*- coding: utf-8 -*- """ Created at 2 ...
- 【Python】模块学习之利用string模块造测试数据
背景 测试过程中需要一些随机数据,使用到了python中的string模块,记录一下 #! /usr/bin/python # coding:utf-8 """ @aut ...
- Python使用微信接入图灵机器人
1.wxpy库介绍 wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展. 文档地址:https://wxpy.readthedocs.io 从 PYPI 官 ...
- Python 004- 利用图灵小机器人来搭建微信聊天自动回复机器人
实现步骤: 1.获取微信的使用权,即python脚本能控制微信收发信息. 2.python脚本收到聊天信息后,要对该信息进行处理,返回机器人的回应信息. 一二两步要用到wxpy库里的各种组件来收发信息 ...
- 使用web api开发微信公众号,调用图灵机器人接口(一)
此文将分两篇讲解,主要分为以下几步 签名校验; 首次提交验证申请; 接收消息; 被动响应消息(返回XML); 映射图灵消息及微信消息; 其实图灵机器人搭载微信公众号很简单,只需要把图灵的地址配到公众后 ...
- python与图灵机器人交互(ITCHAT版本)
#!/usr/bin/env python#-*- coding:utf-8 -*- @Author : wujf @Time:2018/9/5 17:42import requestsimport ...
- 利用python itchat给女朋友定时发信息
利用itchat给女朋友定时发信息 涉及到的技术有itchat,redis,mysql,最主要的还是mysql咯,当然咯,这么多东西,我就只介绍我代码需要用到的,其他的,如果需要了解的话,就需要看参考 ...
- python itchat+机器人web api实现个人微信机器人
模块 itchat 功能 实现微信回复机器人(调用图灵机器人api) 代码 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #Author:Eric im ...
随机推荐
- 【Git】.git/FETCH_HEAD: Permission denied 的解决方法
背景: 用webhook去拉取代码.报错 .git/FETCH_HEAD: Permission denied 原因分析:.git/FETCH_HEAD的这个文件所属组和所属主是root权限,而我用w ...
- matlab学习笔记8 基本绘图命令-特殊图形绘制
一起来学matlab-matlab学习笔记8 基本绘图命令_3 特殊图形绘制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等 ...
- Kubernetes 服务质量 Qos 解析 - Pod 资源 requests 和 limits 如何配置?
QoS是 Quality of Service 的缩写,即服务质量.为了实现资源被有效调度和分配的同时提高资源利用率,kubernetes针对不同服务质量的预期,通过 QoS(Quality of S ...
- QT笔记--checkbox
1 复选框 一般用来表示“是/否”.: 2 属性有哪些 如果需要默认选中,那么设置QAbstractButton->checked 3 哪些操作函数 需要判断是否选中.也就是isChecked( ...
- 微信小程序获取位置
获取位置 getLocation wx.getLocation({ type: 'wgs84', success (res) { const latitude = res.latitude const ...
- Spring中的常用注解
Spring中的常用注解 1.@Controller 标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象.
- LeetCode 503. 下一个更大元素 II(Next Greater Element II)
503. 下一个更大元素 II 503. Next Greater Element II 题目描述 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 ...
- 【剑指offer】面试题 20. 表示数值的字符串
面试题 20. 表示数值的字符串
- [转帖]Helm V2 迁移到 V3 版本
Helm V2 迁移到 V3 版本 -- :: Mr-Liuqx 阅读数 63更多 分类专栏: kubernetes 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上 ...
- AR*客户地点分配OU
DECLARE p_cust_acct_site_rec hz_cust_account_site_v2pub.cust_acct_site_rec_type; p_cust_site_use_rec ...