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 相关文章推荐
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
使用python实现接口的方法
Jul 07 Python
浅谈django model postgres的json字段编码问题
Jan 05 Python
Python简单实现的代理服务器端口映射功能示例
Apr 08 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
python使用adbapi实现MySQL数据库的异步存储
Mar 19 Python
浅析python,PyCharm,Anaconda三者之间的关系
Nov 27 Python
keras实现多种分类网络的方式
Jun 11 Python
pytorch 中autograd.grad()函数的用法说明
May 12 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
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
完美解决PHP中文乱码
2009/11/26 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
2013/08/14 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
vc6编写python扩展的方法分享
2014/01/17 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
python实现自动登录
2018/09/17 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
python同时替换多个字符串方法示例
2019/09/17 Python
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
土耳其国际性时尚购物网站:Modanisa
2018/01/19 全球购物
合作协议书格式
2014/08/19 职场文书
生活部的活动方案
2014/08/19 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
2014年司法局工作总结
2014/12/11 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
公司停电通知
2015/04/15 职场文书
遗嘱范文
2015/08/07 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android