python教你如何把自己的微信变成机器人
如何把自己的微信变成机器人
先看效果图,我把搜的微信小号变成了机器人,然后用微信大号和它进行对话,对话截图如下:
后台打印的数据如下:
实验准备:
1.wxpy库,安装只需一部:sudo apt-get install wxpy
2.注册欧拉蜜人工智能开放平台,这是地址,并创建一个应用。
完整代码:
# -*- coding: utf-8 -*-
# @Time : 2019/8/30 上午9:26
# @Author : lixing
# @Email : jingyoushui@163.com
# @File : wechat2.py
# @Software: PyCharm
"#codeing=utf-8"
import json
import requests
from wxpy import *
from NluAPISample import NluAPISample
import argparse
import redef olami(text):url = "https://cn.olami.ai/cloudservice/api"appKey = "你的appKey"appSecret = "你的App Secret"nluApi = NluAPISample()nluApi.setLocalization(url)nluApi.setAuthorization(appKey, appSecret)result = json.loads(nluApi.getRecognitionResult(nluApi.API_NAME_NLI, text))# print(type(result))print("\nResult:\n\n",result)content = ""t = result['data']['nli'][0]type = result['data']['nli'][0]['type']if(type=="joke"):content = t['data_obj'][0]['content']if(type=="selection"):item = []for i in t['data_obj']:item.append("名称:"+i['hotel_name'])item.append("地址:" + i['hotel_address'])item.append("链接:" + i['description_url'])content = "\n".join(item)if(type=="openweb"):content = t['data_obj'][0]['url']if(type == "baike"):item = []content = t['data_obj'][0]['description']item_id = t['data_obj'][0]['field_name']item_value = t['data_obj'][0]['field_value']for i in item_id:item.append(i +":"+item_value[item_id.index(i)])items = "\n".join(item)content = content+("\n"+items)return str(result['data']['nli'][0]['desc_obj']['result'])+("\n"+content)bot = Bot(cache_path=True,console_qr=True) # 登录缓存
found = bot.friends().search('某某1')
obj1 = found[0]
print(type(obj1))
found2 = bot.friends().search('某某2')
obj2 = found2[0]
print(obj2)found3 = bot.groups().search('群1')
print(found3)
obj3 = found3[0]
user = [obj1,obj2,obj3]
print(user)
@bot.register(user)
def message(msg):print('msg:' + str(msg))if(msg.text):ret = olami(msg.text)res1 = re.sub("欧拉蜜","XXX",ret)res2 = re.sub("7岁", "xx岁", res1)return res2else:ret = "我现在还只能支持文字呦"return ret# embed()
if __name__ == '__main__':# 堵塞线程bot.join()
代码详解:
appKey appSecret
换成olami平台上自己创建的应用的,如图所示:
olami接口返回的json格式数据如下:
{"nli": [{"desc_obj": {"result": "好的,那你听好喽。","name": "","type": "joke","status": 0},"data_obj": [{"content": "某日,生物老师问:“没有尾巴的是什么熊?” 某生说:“无尾熊。” 老师问:“没有脖子的是什么熊?” 某生说:“无脖熊。” 老师再问:“没鸡鸡的是什么熊?” 某生答:“无鸟熊。” 老师:“错!” 某生再答:“嗯~~~无鸡熊。” 老师:“错!唉……是母熊嘛!……现在的小孩……!!” "}],"type": "joke"}]
}
其中type不同,json的Key也不同,根据以上json字段,取出content的代码如下:
t = result['data']['nli'][0]type = result['data']['nli'][0]['type']if(type=="joke"):content = t['data_obj'][0]['content']
依次type还有selection,openweb,baike等类型的
if(type=="selection"):item = []for i in t['data_obj']:item.append("名称:"+i['hotel_name'])item.append("地址:" + i['hotel_address'])item.append("链接:" + i['description_url'])content = "\n".join(item)if(type=="openweb"):content = t['data_obj'][0]['url']if(type == "baike"):item = []content = t['data_obj'][0]['description']item_id = t['data_obj'][0]['field_name']item_value = t['data_obj'][0]['field_value']for i in item_id:item.append(i +":"+item_value[item_id.index(i)])items = "\n".join(item)content = content+("\n"+items)
@bot.register(user)
用来注册监听的用户,可以是好友,也可以是群,如果是单个用户或群:
user = bot.friends().search('某某1')
@bot.register(user)
def message(msg):
如果是监听多个用户和群,需要放在一个列表里,但是user本身就是一个列表,user类型是<class 'wxpy.api.chats.chats.Chats'>
,user的值是[<Friend: 某某1>]
需要将它第一个元素取出来,然后再一起放在一个列表里。像这样[<Friend: 苹果粥>, <Friend: 静幽水>, <Group: 都是我呀>]
。
found = bot.friends().search('苹果粥')
obj1 = found[0]
found2 = bot.friends().search('静幽水')
obj2 = found2[0]
found3 = bot.groups().search('都是我呀')
obj3 = found3[0]
user = [obj1,obj2,obj3]
print(user)
@bot.register(user)
def message(msg):
当微信接收到文本信息的时候,会调用olami的api,然后返回微信就会自动回复。当然可以把欧拉蜜
换成自己的名字。
@bot.register(user)
def message(msg):print('msg:' + str(msg))if(msg.text):ret = olami(msg.text)res1 = re.sub("欧拉蜜","XXX",ret)res2 = re.sub("7岁", "xx岁", res1)return res2else:ret = "我现在还只能支持文字呦"return ret
python教你如何把自己的微信变成机器人相关推荐
- (Python,Hanlp,Neo4j)基于电影图谱搭建微信问答机器人(一)
近期着手在构建毕业设计系统,由于早期时间偶然接触到一个公众号推送关于人工智能客服的信息,心血来潮也想自己搭建一个.在经历了不断的踩坑填坑,总算是达成目标.记录一下整体搭建. 话不多说先上效果图 具体流 ...
- python opencv创建图像_打开国庆的正确方式,教你用OpenCV-Python轻松生成微信国庆版头像...
原标题:打开国庆的正确方式,教你用OpenCV-Python轻松生成微信国庆版头像 OpenCV轻松搞定,不信看内容 相信最近两天大家都被微信头像的国庆版新装刷爆了朋友圈了,不少人都@微信官方,要求换 ...
- python代码图片头像_Python帮你微信头像任意添加装饰别再@微信官方了
@微信官方 昨天朋友圈刷爆了@微信官方的梗,从起初的为头像添加国旗,到最后的各种Book思议的需求-而我呢?@了辣么辣么多的奥特曼,结果还是加班到12点多-最后想想,人还是得靠自己吧,@我自己吧- 昨 ...
- python爬虫教程-Python教父|廖雪峰老师官方爬虫教程,13个案例带你全面入门!
原标题:Python教父|廖雪峰老师官方爬虫教程,13个案例带你全面入门! Python简直就是万能的,你用Python都做过哪些事? 用网页看各大网站的VIP视频,用python下载? 用Pytho ...
- 中文编程,最精致的python访客登记系统实例项目,微信机器人不再只当人工智障---08
中文编程,最精致的python访客登记系统实例项目,微信机器人不再只当人工智障---08 - 浩海泛舟的文章 - 知乎 https://zhuanlan.zhihu.com/p/51902838 面向 ...
- python黑科技:Python大佬用20行代码带你打造一个微信聊天机器人,真神了~
如何用20行Python代码打造一个微信群聊助手? 1.安装python环境 2.安装python的itchat库 3.安装itchat库 4.Linux 5.申请图灵机器人API和key 6.编写p ...
- 手把手使用Python教你破解谷歌(Google)人机验证码—上篇
手把手使用Python教你破解谷歌(Google)人机验证码-上篇 众里寻他千百度.蓦然回首,那人却在,灯火阑珊处. /1 前言/ 今天呢,咱们来说一下Google,我们都知道,Google是目前地表 ...
- python社区微信群_30行Python代码,打造一个简单的微信群聊助手,简单方便
大家都知道,最近代码君迷上了Python,一直在研究这门语言,还是那句话,人生苦短,我学Python,今天代码君要教大家一个黑科技,30行代码实现自己定制的微信群聊助手,这个助手有什么用呐,就是用来活 ...
- 三步教你用Node做一个微信哄女友(基友)神器,小白可上手
前言 不知道大家最近有没有被python版的<微信每日说>刷屏呢,他可是霸占了github的python热门快两周了.我们前端的小伙伴是不是也看着有点眼馋呢,因为毕竟是不那么熟悉的pyth ...
- python程序30行_30行Python代码,打造一个简单的微信群聊助手,简单方便
大家都知道,最近代码君迷上了Python,一直在研究这门语言,还是那句话,人生苦短,我学Python,今天代码君要教大家一个黑科技,30行代码实现自己定制的微信群聊助手,这个助手有什么用呐,就是用来活 ...
最新文章
- $_FILES上传错误类型
- netty做一个posp的网络_皑云网络——接手一个新的SEM竞价账户怎么做?
- [C#]最简单的Base64加密解密
- Linux远程管理协议相关知识介绍
- Tensorflow中查看gpu是否可用
- malloc动态分配数组以及指针数组大小
- mysql数据库的服务无法启动,mysql服务无法启动,服务没有报告任何错误
- SpringCloud工作笔记044---SpringCloud分布式服务器配置要求_记录一下
- redis——哈希(hash)
- html5开发桌面程序调用dll,使用Visual Studio开发Html5应用
- 面试题30.最小的k个数
- ERROR: This version of Android Studio cannot open this project, please retry with Android Studio 3.
- editplus使用
- WPF实现鼠标拖动框选功能
- 解决iOS10.3打开APP提示未受信任的企业级开发者
- [转载]matlab中分号、冒号、逗号等常用标点符号的作用
- Window10总是自动打开网络代理的解决方案法
- 《保卫萝卜》分析续——地图构成
- Zephyr pinctrl
- fastreport在delphi中的使用