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

1 技术选型

1.1 QQBot

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

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

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

1.2 酷 Q

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

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

基本免费的功能已经可以支持我的需求了,就选定了酷 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\ 目录中应该已经有了一个名为 .json 的文件( 为你登录的 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号码是12345678
 if 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技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值