Python QQBot库的QQ聊天机器人


Posted in Python onJune 19, 2019

本文实例为大家分享了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

Python QQBot库的QQ聊天机器人

接下来编写自动回复的脚本

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/文件夹下

Python QQBot库的QQ聊天机器人

保持之前的命令行窗口运行,再重新启动一个,执行

qq plug recall

其中“recall”时刚才我们放进去的py文件名称

Python QQBot库的QQ聊天机器人

测试可行

Python QQBot库的QQ聊天机器人

参数说明:

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'])

接下来重新加载一下就可以了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
常用python数据类型转换函数总结
Mar 11 Python
python 判断参数为Nonetype类型或空的实例
Oct 30 Python
Python3.5以上版本lxml导入etree报错的解决方案
Jun 26 Python
linux环境中没有网络怎么下载python
Jul 07 Python
Python Matplotlib 基于networkx画关系网络图
Jul 10 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 Python
Python 中list ,set,dict的大规模查找效率对比详解
Oct 11 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
Python运行提示缺少模块问题解决方案
Apr 02 Python
通过python 执行 nohup 不生效的解决
Apr 16 Python
Python 数据结构之十大经典排序算法一文通关
Oct 16 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 Python
python替换字符串中的子串图文步骤
Jun 19 #Python
python实现QQ批量登录功能
Jun 19 #Python
python里 super类的工作原理详解
Jun 19 #Python
Python创建或生成列表的操作方法
Jun 19 #Python
Django REST framework 分页的实现代码
Jun 19 #Python
python获取磁盘号下盘符步骤详解
Jun 19 #Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 #Python
You might like
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
PHP中foreach循环中使用引用要注意的地方
2011/01/02 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
js类式继承与原型式继承详解
2016/04/07 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
Python中的getopt函数使用详解
2015/07/28 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
大学生村官座谈会发言材料
2014/05/25 职场文书
幼儿园运动会口号
2014/06/07 职场文书
鼋头渚导游词
2015/02/05 职场文书
新郎结婚感言
2015/07/31 职场文书
公司保密管理制度
2015/08/04 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Vue的过滤器你真了解吗
2022/02/24 Vue.js
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs