1 技术选型

1.1 QQBot

百度了解到的第一个是QQBot,是一个用 python 实现的、基于腾讯 SmartQQ 协议的简单 QQ 机器人,可运行在 Linux 和 Windows 平台下,所有代码集成在一个 qqbot.py 文件中,你可以用 来实现:

  • 监控、收集 QQ 消息
  • 自动消息推送
  • 聊天机器人

不足的地方是,每次登陆的时候需要手动进行扫描的操作,很不方便;支撑的功能比较少,不满足后需要的需求。

1.2 酷 Q

酷Q是一款智能机器人软件,包含强大的插件机制,可以安装各式各样的插件,扩展酷Q的各项功能,有免费版本,收费版本,下面介绍游戏免费版本能支持的功能

  • 登陆支持账号密码登陆
  • 私聊消息,群消息,讨论组消息,群管理操作
  • 消息:文字消息,At他人,QQ表情,Emoji表情

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:721195303

基本免费的功能已经可以支持我的需求了,就选定了酷 Q。酷 Q本身只是封装了SmartQQ的协议,本身是没有具备功能,可以通过插件的方式扩展功能。

1.3 万能的淘宝

群发的消息的各种软件在万能的淘宝搜索一下,一大堆,价格还特便宜。为啥我们还需要自己去弄一个呢。

  • 安全性,万一用了其他软件,qq被盗了呢
  • 开发一个淘宝类似的功能不复杂
  • 自己开发的可以根据需求随便变,比较灵活,例如我今天要接入一个图灵机器人,明天要接入其他的机器人都很方便

2 开始折腾

2.1 安装需要的软件

酷 Q 直接下载后,直接双击安装就可以了。

2.1.1CoolQ HTTP API 插件

通过 HTTP 对酷 Q 的事件进行上报以及接收 HTTP 请求来调用酷 Q 的 DLL 接口,从而可以使用其它语言编写酷 Q 插件。现已支持 WebSocket。

下载最新的 cpk 文件放到酷 Q 的 app 文件夹,然后启用即可。启用后插件将开启一个 HTTP 服务器来接收请求,默认监听 0.0.0.0:5700,首次启用会生成一个默认配置文件,在酷 Q 的 app\io.github.richardchien.coolqhttpapi\config 文件夹中,文件名为 <user_id>.json

此时通过 http://192.168.1.123:5700/ 即可调用酷 Q 的函数,例如 http://192.168.1.123:5700/send_private_msg?user_id=123456&message=你好,注意这里的 192.168.1.123 要换成你自己电脑的 IP,如果在本地跑,可以用 127.0.0.1,user_id 也要换成你想要发送到的 QQ 号。

2.1.2 NoneBot

NoneBot 是一个基于 酷 Q 的 Python 异步 QQ 机器人框架,它会对 QQ 机器人收到的消息进行解析和处理,并以插件化的形式,分发给消息所对应的命令处理器和自然语言处理器,来完成具体的功能。

除了起到解析消息的作用,NoneBot 还为插件提供了大量实用的预设操作和权限控制机制,尤其对于命令处理器,它更是提供了完善且易用的会话机制和内部调用机制,以分别适应命令的连续交互和插件内部功能复用等需求。

NoneBot 在其底层与酷 Q 交互的部分使用 python-aiocqhttp 库,后者是 CoolQ HTTP API 插件的一个 Python 异步 SDK,在 Quart 的基础上封装了与 CoolQ HTTP API 插件的网络交互

通过下面的命令安装

pip install none-bot

2.2 开始编写

2.2.1 设置插件的配置

酷 Q 的 app\io.github.richardchien.coolqhttpapi\config\ 目录中应该已经有了一个名为 <user-id>.json 的文件(<user-id> 为你登录的 QQ 账号)。修改这个文件,添加如下配置项,并且重启一下酷 Q

{"ws_reverse_api_url": "ws://127.0.0.1:8080/ws/api/","ws_reverse_event_url": "ws://127.0.0.1:8080/ws/event/","ws_reverse_reconnect_on_code_1000": true,"use_ws_reverse": true
}

2.2.2 启动NoneBot

启动后,就可以看到控制台如下图的信息,表示已经启动成功了。

import none
if __name__ == '__main__':none.init()none.load_builtin_plugins()none.run(host='127.0.0.1', port=8080)

启动后,控制台信息

2.2.3 开发群发信息的功能

通过另外一个qq发送信息给当前的qq进行群发消息的功能,只是需要下面几行代码就可以了。当然也可以改为获取用户的信息,群发用户的信息

#监控发送的消息“群发”的事件
@on_command('send_msg', aliases=('群发',))
async def send_msg(session: CommandSession):message_type=session.ctx['message_type'] user_id=session.ctx['user_id']#判断发送的消息是私聊的,并且发送的qq号码是12345678if message_type=='private' and user_id==12345678:#获取qq群的信息group_list = await session.bot.get_group_list()for group in group_list:#对某个qq群进行发送信息await session.bot.send_group_msg(group_id=group['group_id'],message='要群发的消息')

3 应用扩展,注意事项

上面讲到的只是最基本的发送信息的功能,还有那些可以玩的呢?

  • 群管理的功能,自动检测新加入的成员,可以对新加入的成员发送群的规则,指引。可以检测群成员发送的信息不符合群规则,自动实现禁用,踢出等操作
  • 实现群机器人,例如 @群机器人,自动回复,实现成员跟机器人的互动;高级点可以接入图灵机器人等外部的接口。

在这里还是要推荐下我自己建的Python学习群:721195303,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

小伙用Python编写QQ机器人和女朋友聊了一下午都没被发现?相关推荐

  1. 小伙用Python编写QQ机器人和女友聊了一下午都没被发现?

    1 技术选型 1.1 QQBot 百度了解到的第一个是QQBot,是一个用 python 实现的.基于腾讯 SmartQQ 协议的简单 QQ 机器人,可运行在 Linux 和 Windows 平台下, ...

  2. 创建微信机器人和女朋友聊天_创建聊天机器人

    创建微信机器人和女朋友聊天 by Rob Ellis 由Rob Ellis 创建聊天机器人 (Creating a Chat Bot) Human interaction has always fas ...

  3. 人工智障和神经病网络对话--30行python让图灵机器人和茉莉机器人无止尽的瞎扯蛋

    首先注册申请图灵机器人的API: http://www.tuling123.com/ 查看一下API的格式,很简单: {"key": "APIKEY",&quo ...

  4. WeCode在线少儿编程 | 用Python编写地球公转运动程序,月亮地球太阳全部都在!

    本周,要给大家推荐的创意编程作品是地球公转运动程序: 源代码如下: # 不带地球自转 import turtle sun = turtle.Turtle() earth = turtle.Turtle ...

  5. python是什么编程教程-一个新手,什么编程都没学过怎么学好Python?

    可以参考一下<笨办法学Python 3>中的笨办法,希望以下方法可以帮忙到你. 在本书的帮助下,你将通过完成下面这些非常简单的事情来学会一门编程语言,这也是每个程序员的必经之路. 1.从头 ...

  6. python编写单实例总结

    python编写单实例总结 1 单实例的属性都可以在__init__方法中按照sell.x=x添加 2  实例内部某方法调用实例另一方法用self方式 def fun1(self,x):     re ...

  7. 使用Python设置钉钉机器人和企业微信机器人的步骤

    文章目录 一.钉钉机器人 0.参考文档 1.创建一个群 2.设置群助手 3.设置机器人信息 4.编写测试文件 5.访问请求,预警成功 二.企业微信机器人 0.消息发送频率限制 1.创建群聊,增加机器人 ...

  8. python机器人编程 乐高_孩子还能加分?少儿编程可以实现!编程机器人和编程有什么区别?...

    简单来说,少儿编程可以制作动画,制作APP,让机器移动等等,如下图所示,编程都可以实现. 那么编程机器人呢,主要是通过编程让机器动起来,比如让车跑起来,加速减速,让机器人挥动臂膀抓,放等等,通过编程让 ...

  9. python发音机器人_python qq机器之 使用阿里云语音合成让机器人发送好听到炸裂的语音...

    上一篇文章我们写了用python实现qq机器人的基本操作:xiaowei:使用python打造一个自己的QQ机器人 [基础篇]​zhuanlan.zhihu.com 本篇文章,我们来尝试使用语音合成技 ...

最新文章

  1. html 实现动态在线预览word、excel、pdf等文件
  2. mysql退出当前数据库,再次 show databases
  3. 网页中嵌入地图位置方法
  4. 两平面平行方向向量关系_立体几何平行证明的四大必杀绝技------赞!很赞!!非常赞!!!...
  5. 远程研发能有多高效?手淘新版本上线只用了5天!
  6. win10系统如何把bat批处理文件固定到开始菜单
  7. [bzoj2301] [HAOI2011]Problem b
  8. Hibernate3.X实现基于CLOB字段类型的注解方式:
  9. Java中抽象类和接口的区别?
  10. python的urllib2包基本使用方法
  11. 帆软根据控件值切换sheet
  12. 微弱信号放大电路(电磁超声)
  13. 计算机本地组策略编辑器在哪里,win7系统本地组策略编辑器在哪的操作方法
  14. 神奇的分形艺术: Mandelbrot集和Julia集
  15. 微信付款为什么无法连接服务器,前台微信付款报错:无法连接服务器,请检查网络连接?...
  16. R语言构建logistic回归模型:模型系数(model coefficient)、模型总结信息(summary)、模型评估(偏差deviance计算、伪R方计算( pseudo R-squared)
  17. BFS解决一般性的泊松分酒问题
  18. 超好玩的硬币游戏,你会玩吗?
  19. DSS部署-12、DSS安装
  20. SQL insert into 插入的单行,多行的情况

热门文章

  1. 集丰照明|亚朵系列无主灯COB防水筒射灯智能照明防眩射灯
  2. 只用几个命令实现turtle画筋斗云
  3. 【汇编语言】by王爽 | 实验10:编写子程序
  4. 大数据爆炸,你能听懂我的话吗?
  5. 【JS】toFixed不精准问题的解决办法
  6. 正确挤出3DMAX模型的方法,避免空心
  7. 猪八戒网Nginx的动态服务发现演进之路
  8. 蒂夫·乔布斯十大经典语录
  9. 千元Android 3G手机普及是场梦
  10. [转]老男孩读pcie