Python QQBot库的QQ聊天机器人
作者:偷亲 发布时间:2022-03-18 23:29:30
标签:python,QQBot,机器人
本文实例为大家分享了Python QQBot库的QQ聊天机器人的具体代码,供大家参考,具体内容如下
项目地址:https://github.com/pandolia/qqbot
1.安装
pip install qqbot
2.主动发出消息
from qqbot import _bot as bot
# 登录QQ
bot.Login(['-q', '2816626661'])
'''
buddy 获取指定名称/备注的好友
group 获取群
'''
buddy = bot.List('buddy', 'b.K')
# 判断是佛存在这个好友
if buddy:
b = buddy[0]
# 发送消息
bot.SendTo(b, 'nihao')
3.根据事件回复消息
首先我们需要在命令行启动qq
c:\Python3.6.4\virtual\env_qq\Scripts>activate
(env_qq) c:\Python3.6.4\virtual\env_qq\Scripts>qqbot -q 2816626661
接下来编写自动回复的脚本
from qqbot import _bot as bot
def onQQMessage(bot, contact, member, content):
if content == '-hello':
bot.SendTo(contact, '你好,我是QQ机器人')
elif content == '-stop':
bot.SendTo(contact, 'QQ机器人已关闭')
bot.Stop()
接下来将其放入 C:\用户/xxxx/.qqbot-tmp/plugins/文件夹下
保持之前的命令行窗口运行,再重新启动一个,执行
qq plug recall
其中“recall”时刚才我们放进去的py文件名称
测试可行
参数说明:
bot : QQBot 对象,提供 List/SendTo/Stop/Restart 等接口、
contact : QContact 对象,消息的发送者,具有 ctype/qq/uin/nick/mark/card/name 等属性
member : QContact 对象,仅当本消息为 群消息或讨论组消息 时有效,代表实际发消息的成员
content : str 对象,消息内容
4.结合图灵机器人
在这里注册一个图灵机器人账号http://www.tuling123.com/
重新编写刚才的脚本
from qqbot import _bot as bot
import requests
import json
def getReplay(message):
url = 'http://openapi.tuling123.com/openapi/api/v2'
data = {
"perception": {
"inputText": {
"text": message
},
},
"userInfo": {
"apiKey": "你的APIkey",
"userId": "你的uesrID"
}
}
response = requests.post(url=url, json=data)
return response.text
def onQQMessage(bot, contact, member, content):
if content == '-hello':
bot.SendTo(contact, '你好,我是QQ机器人')
else:
response = getReplay(content)
bot.SendTo(contact, json.loads(response)['results'][0]['values']['text'])
接下来重新加载一下就可以了。
来源:https://blog.csdn.net/C_Ronaldo_/article/details/82117904


猜你喜欢
- #/usr/bin/env python#-*- coding:utf-8 -*-"""1.解析 cronta
- 概述从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类
- 如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改。除了列表是用中括号表示而元
- 做一个将本地图片上传到mysql数据库的小实例,顺便也下载下来到桌面检测是否上传成功。在写代码之前得先在数据库中建立image表,用来存储图
- 本文介绍了深入理解ES6中let和闭包,分享给大家,具体如下:在开始本文之前我们先来看一段代码for(var i=0;i<10;i++
- 前言在尝试将结构体序列化为 Json 时,你可能会遇到 “omitempty” 标记,本小记就来浅看
- 最近写一个小爬虫,需要拿到邮箱信息,发现拿不到,也不是ajax接口。最后查资料发现是被Cloudflare加密起来了,有加密肯定有解密。通过
- 前言春联是中国传统文化中最具内涵的元素之一,它以对仗工整、简洁精巧的文字描绘美好形象,抒发美好愿望,是中国特有的文学形式,是华人们过年的重要
- 在本文中,我将给大家演示如何在 python 中使用四种方法替换文件中的文本。方法一:不使用任何外部模块搜索和替换文本让我们看看如何在文本文
- 引言 本文通过python3、第三方python库Selenium和谷歌浏览器Chrome,完成WPS表单的自动填写。开发环境配置 py
- 导入注意点:使用phpmyadmin或navicat之类的工具的导入功能还是会相当慢,可以直接使用mysql进行导入导入命令如下:mysql
- Python内建了map()和reduce()函数。如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified
- 01 Go中的泛型是什么众所周知,Go是一门静态类型的语言。静态类型也就意味着在使用Go语言编程时,所有的变量、函数参数都需要指定具体的类型
- Django是个好工具,使用的很广泛。 在应用比较小的时候,会觉得它很快,但是随着应用复杂和壮大,就显得没那么高效了。当你了解所用的Web框
- pytorch自定义不可导激活函数今天自定义不可导函数的时候遇到了一个大坑。首先我需要自定义一个函数:sign_fimport torchf
- INSERT INTO Table (TestCol) VALUES(‘')其中的TestCol字段,其实在设计的时候,已经被设计为
- 一、概述任务描述:开发一个程序,用于获取局域网中开启snmp服务的主机ip地址列表,并写入相应文件以便其它程序使用。背景知识:SNMP是基于
- 前言:『入门MySQL』系列文章已经完结,今后我的文章还是会以MySQL为主,主要记录下近期工作及学习遇到的场景或者自己的感悟想法,可能后续
- 当系统出现故障时,只要存在数据日志那么就可以利用它来恢复数据解决数据库故障。作为SQL Server数据库管理员,了解数据日志文件的作用,以
- 1.简介map 是 Golang 中的方便而强大的内建数据结构,是一个同种类型元素的无序组,元素通过另一类型唯一的键进行索引。其键可以是任何