一、下载安装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模块的使用,利用图灵机器人进行微信消息自动回复的更多相关文章

  1. python 全栈开发,Day123(图灵机器人,web录音实现自动化交互问答)

    昨日内容回顾 . 百度ai开放平台 . AipSpeech技术,语言合成,语言识别 . Nlp技术,短文本相似度 . 实现一个简单的问答机器人 . 语言识别 ffmpeg (目前所有音乐,视频领域,这 ...

  2. Python 使用图灵机器人实现微信聊天功能

    首先需要去图灵官网创建一个属于自己的机器人然后得到apikey. 一.自动与指定好友聊天 # -*- coding: utf-8 -*- """ Created at 2 ...

  3. 【Python】模块学习之利用string模块造测试数据

    背景 测试过程中需要一些随机数据,使用到了python中的string模块,记录一下 #! /usr/bin/python # coding:utf-8 """ @aut ...

  4. Python使用微信接入图灵机器人

    1.wxpy库介绍 wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展. 文档地址:https://wxpy.readthedocs.io 从 PYPI 官 ...

  5. Python 004- 利用图灵小机器人来搭建微信聊天自动回复机器人

    实现步骤: 1.获取微信的使用权,即python脚本能控制微信收发信息. 2.python脚本收到聊天信息后,要对该信息进行处理,返回机器人的回应信息. 一二两步要用到wxpy库里的各种组件来收发信息 ...

  6. 使用web api开发微信公众号,调用图灵机器人接口(一)

    此文将分两篇讲解,主要分为以下几步 签名校验; 首次提交验证申请; 接收消息; 被动响应消息(返回XML); 映射图灵消息及微信消息; 其实图灵机器人搭载微信公众号很简单,只需要把图灵的地址配到公众后 ...

  7. python与图灵机器人交互(ITCHAT版本)

    #!/usr/bin/env python#-*- coding:utf-8 -*- @Author : wujf @Time:2018/9/5 17:42import requestsimport ...

  8. 利用python itchat给女朋友定时发信息

    利用itchat给女朋友定时发信息 涉及到的技术有itchat,redis,mysql,最主要的还是mysql咯,当然咯,这么多东西,我就只介绍我代码需要用到的,其他的,如果需要了解的话,就需要看参考 ...

  9. python itchat+机器人web api实现个人微信机器人

    模块 itchat 功能 实现微信回复机器人(调用图灵机器人api) 代码 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #Author:Eric im ...

随机推荐

  1. 【Git】.git/FETCH_HEAD: Permission denied 的解决方法

    背景: 用webhook去拉取代码.报错 .git/FETCH_HEAD: Permission denied 原因分析:.git/FETCH_HEAD的这个文件所属组和所属主是root权限,而我用w ...

  2. matlab学习笔记8 基本绘图命令-特殊图形绘制

    一起来学matlab-matlab学习笔记8 基本绘图命令_3 特殊图形绘制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等 ...

  3. Kubernetes 服务质量 Qos 解析 - Pod 资源 requests 和 limits 如何配置?

    QoS是 Quality of Service 的缩写,即服务质量.为了实现资源被有效调度和分配的同时提高资源利用率,kubernetes针对不同服务质量的预期,通过 QoS(Quality of S ...

  4. QT笔记--checkbox

    1 复选框 一般用来表示“是/否”.: 2 属性有哪些 如果需要默认选中,那么设置QAbstractButton->checked 3 哪些操作函数 需要判断是否选中.也就是isChecked( ...

  5. 微信小程序获取位置

    获取位置 getLocation wx.getLocation({ type: 'wgs84', success (res) { const latitude = res.latitude const ...

  6. Spring中的常用注解

    Spring中的常用注解 1.@Controller 标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象.

  7. LeetCode 503. 下一个更大元素 II(Next Greater Element II)

    503. 下一个更大元素 II 503. Next Greater Element II 题目描述 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 ...

  8. 【剑指offer】面试题 20. 表示数值的字符串

    面试题 20. 表示数值的字符串

  9. [转帖]Helm V2 迁移到 V3 版本

    Helm V2 迁移到 V3 版本 -- :: Mr-Liuqx 阅读数 63更多 分类专栏: kubernetes 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上 ...

  10. AR*客户地点分配OU

    DECLARE p_cust_acct_site_rec hz_cust_account_site_v2pub.cust_acct_site_rec_type; p_cust_site_use_rec ...