如何用Python开发QQ机器人

使用Python编写一个QQ聊天机器人 参考: 使用python打造一个自己的QQ机器人 Python实现聊天机器人的示例代码 准备工作 首先下载酷Q,下载地址 提取码: a4q8,并解压 还需要一个插件,下载地址 提取码: fyai 把这个文件复制到酷Q根目录(就是那个含有CQA.exe的文件夹)下的app文件夹,运行CQA.exe 输入自己的QQ账号密码(可以注册一个专门给机器人用)并登录 可能会卡一下,等一会就好了 进行身份验证(如果有) 登进去之后,会有悬浮窗和托盘图标 右击托盘图标,选择应用→应用管理,点击CQHTTP, 阅读详情

前言

  • 虽然该文最终是达到以python开发mirai机器人的目的,但起步教程,尤其是环境配置上仍然有大量的相同操作,对其他编程语言仍有借鉴之处

  • 假设你已经安装好了 Java、Python等运行必须的环境

mirai生态

  • mirai官方生态文档

  • 要使用mirai开发QQ机器人,首先要对其生态有一定的了解,因为它太复杂了,坑特别多,所以多了解一点,遇到问题之后解决起来也会更快

  • mirai生态汇总图

  • 简单来说,mirai生态的核心是Mirai框架,其中包含了mirai-core及mirai-core-api两部分。

  • 其中,前者负责协议相关的内容,而后者负责对外提供操作前者的接口。因此与程序员直接打交道的是mirai-core-api,而mirai-core,对我们是不可见的。

  • 使用mirai-core-api就已经可以开发QQ机器人了,但对萌新来说难度还是太大,于是mirai官方开发组编写了一个QQ机器人程序,mirai-console,它在 mirai 框架提供的基础功能的基础上进行了封装并进一步提供了更方便的开放接口。

  • 有了mirai-console,我们就不用直接去开发mirai的QQ机器人了,而是去开发mirai-console的插件,如下面的模式:

在这里插入图片描述

  • 尴尬的是,开发mirai-console的插件,又需要使用java或者kotlin。如果你跟我一样,对他们都不熟悉,那么官方的另一个插件mirai-api-http,则可以解决这个问题。

  • 于是借助mirai-api-http开发QQ机器人,就成了下面这种模式:

在这里插入图片描述

  • 可以看到,当我们使用了mirai-api-http后,我们就有了更多的开发语言选择。此处我选择python。

起步

使用 mirai-console-loader 启动 mirai-console

  • 根据上面的介绍,要开发一个mirai的QQ机器人,我们首先需要将mirai-console给运行起来,而要做到这一步,可难。例如你需要准备mirai-core,mirai-console 和 mirai-console-terminal,然后还需要通过一大串指令来启动它。

  • 而官方显然考虑到这一点,为了挽回被这一高难度操作劝退的萌新,官方又推出了mirai-console-loader(简称mcl) —— mirai-console 的官方一键启动器。因此你仅需要下载它即可(第一步说的都不用管0.0)。github仓库位置:mirai-console-loader[2]

  • 下载完成mcl之后,解压、打开cmd、切换到mcl所在目录、运行mcl。如下图:

在这里插入图片描述

  • 不出意外的话,mirai-console就成功启动了,如下图:

在这里插入图片描述

  • 然而,咱从官方下载的项目,运行时却出错了0.0 ( 如果你没有出错,忽略此步骤 )。原因是配置文件出错 (太倒霉了 - -)。修改方式如图:
    在这里插入图片描述

  • 然后再重新运行一下,mcl,不出意料的话,能成功运行。

  • 第一个大坎就迈过了…接下来是另一个大坎

使用 mirai-login-solver-selenium 处理滑块验证辅助登录

  • 在成功启动的mcl窗口,运行命令登录qq:login 账号 密码

  • 应该是会出错的,因为mirai-console在登录时,不能处理滑块验证:
    在这里插入图片描述

  • 于是我们需要mirai的另一个项目 mirai-login-solver-selenium[3] 来辅助登录

  • mirai-login-solver-selenium安装步骤 (需要先安装 Chrome 浏览器)

  • 先结束掉之前运行的 mirai-console, 然后在命令行运行如下命令,添加该包

mcl --update-package net.mamoe:mirai-login-solver-selenium --channel nightly --type plugin   
  • 然后再重新运行mcl,这样mcl就会去尝试下载mirai-login-solver-selenium。

  • 然而,我这一步也出现问题了(如果你没有问题,也请跳过)。因为它用到了selenium,所以就要用chromedriver。但是chromedriver总是下载失败,所以这一步需要手动下载chromedriver,然后替换到对应目录。步骤如下:

    1.查看cmd窗口,找到mcl正在下载的chromedriver是什么版本
    在这里插入图片描述

    2.然后去chromedriver的另一个镜像源下载,推荐:chromedriver[4]

    3.找到一个版本号相近的即可,例如我就下载 86.0.4240.22
    在这里插入图片描述

    4.将下载好的文件解压,再重命名成chromedriver-86.0.4240.198.exe,也就是刚刚我们在命令行窗口查看的文件名,一定要跟它想下载的文件名一致

    5.结束之前运行的mcl命令行程序,然后将准备好的chromedriver-86.0.4240.198.exe, 替换到以下目录
    在这里插入图片描述

    6.重新运行mcl程序,如果一切顺利,就可以继续之前的步骤,输入命令:login 账号 密码 尝试登录。接下来会弹出一个浏览器窗口,你只需要傻瓜式的完成登录验证即可。如果登录成功,以后的每次登录,应该都是不需要再次验证的。

  • 又跨过一个坎…接下来就到了另外一个坎

使用 mirai-api-http 增加语言拓展性 (为了能用其他语言来开发)

  • 前面一直在说 mirai-api-http,但是到目前为止,我们都还没有用上它。前面的工作就做了两个事情

    1.使用mcl运行mirai-console

    2.使用 mirai-login-solver-selenium 辅助通过滑块验证码,完成登录

  • 那么接下来就开始用mirai-api-http,首先在mirai-api-http项目地址,下载mirai-api-http[5]

  • 然后将下载到的jar包,放在plugin文件夹下,如图
    在这里插入图片描述

  • 然后再重启mcl,重新进行登录。这样准备工作就完成了,但是我出现了一些错误,看意思应该是签名验证的问题,错误如下:
    在这里插入图片描述

  • 四处咨询后了解到,是oracle JDK的问题,因此只需要将orcaleJDK 替换成为 open JDK即可,步骤如下:

1.下载 open JDK[6],例如我下载如图所示的版本:
在这里插入图片描述

2.解压open JDK, 并放在你认为合适的位置,例如我放在如下图所示的位置:
在这里插入图片描述

3.添加 jdk 所在路径到环境变量:此电脑 ->右键属性 -> 高级系统设置 -> 高级 -> 环境变量, 再按下图操作
在这里插入图片描述

通过 graia-application-mirai 使用 python 开发 mirai 机器人

  • 前面的操作,直到该步为止,基本对所有使用除java/kotlin语言的程序员,都是通用的。而后面的操作,仅写给使用python的程序员

  • graia-application-mirai官方文档[7]

  • 首先对mirai-api-http进行配置,如图:
    在这里插入图片描述

    以下是参考,自己看着配就行

# file: mcl-1.0.3/config/net.mamoe.mirai.api.http/setting.yml
authKey: graia-mirai-api-http-authkey # 你可以自己设定, 这里作为示范

# 可选,缓存大小,默认4096.缓存过小会导致引用回复与撤回消息失败
cacheSize: 4096

enableWebsocket: true # 是否启用 websocket 方式, 若使用 websocket 方式交互会得到更好的性能
host: '0.0.0.0' # httpapi 服务监听的地址, 错误的设置会造成 Graia Application 无法与其交互
port: 8080 # httpapi 服务监听的端口, 错误的设置会造成 Graia Application 无法与其交互
  • 重启mcl, 更新配置

  • 接着,安装 python 操作 mirai-api-http 接口的模块:graia-application-mirai

pip install graia-application-mirai   
  • 将以下代码复制到bot.py,按注释提示,再结合刚刚对mirai-api-http的配置,稍作修改。然后运行
rom graia.broadcast import Broadcast
from graia.application import GraiaMiraiApplication, Session
from graia.application.message.chain import MessageChain
import asyncio

from graia.application.message.elements.internal import Plain
from graia.application.friend import Friend

loop = asyncio.get_event_loop()

bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(
    broadcast=bcc,
    connect_info=Session(
        host="http://localhost:8080", # 填入 httpapi 服务运行的地址
        authKey="graia-mirai-api-http-authkey", # 填入 authKey
        account=5234120587, # 你的机器人的 qq 号
        websocket=True # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作.
    )
)

@bcc.receiver("FriendMessage")
async def friend_message_listener(app: GraiaMiraiApplication, friend: Friend):
    await app.sendFriendMessage(friend, MessageChain.create([
        Plain("Hello, World!")
    ]))

app.launch_blocking()
  • 然后向你的QQ机器人,随便发送一条消息,如果它回复你Hello, World!,则表示运行成功

  • 成功所示如下:
    在这里插入图片描述

结语

上面的全部操作,不过是使用mirai进行开发QQ机器人的起步教程而已,需要了解更多,还是去阅读官方文档,以学习更多的api。

关于Python学习指南

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

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

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

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

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

在这里插入图片描述

👉Python大厂面试资料👈

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

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

点击免费领取《优快云大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

怎么用Python做一个qq群机器人 随着社交网络的不断扩展与深化,群聊机器人逐渐成为一种新趋势。无论是用于自动回复消息、发送新闻摘要还是执行特定任务,机器人都能显著提升我们的交流效率。而在众多编程语言中,Python凭借其简洁易学的语法以及丰富的第三方库支持,在开发机器人方面表现出色。今天,我们就一起来探索如何利用Python和腾讯提供的SDK——酷Q(CoolQ),创建一个属于自己的QQ群聊天机器人吧! 阅读详情

相关推荐

Python搭建QQ聊天机器人极简教程

本文通过详细的步骤指导,实现了基于go-cqhttp的QQ自动回复机器人部署。通过对QQ号配置、go-cqhttp的安装和配置、WebSocket服务的搭建以及自动回复脚本的编写,构建了一个能够响应特定关键词的群聊机器人。该方法不仅降低了使用成本,还提高了管理的自动化程度。机器人在用户登录、扫码验证、远程服务器上传和运行等环节的详细说明,使得该流程即使对技术背景有限的用户也友好易操作。此搭建方案为实现QQ群的便捷管理提供了高效的自动化工具,在未来的应用中具有良好的拓展性与实用价值。

Mr数据杨 1万+

教你使用python搭建QQ机器人

教你快速搭建你自己的QQ机器人,可以实现聊天,发图,语音,查询天气等功能。甚至不需要编程。

m0_51675440的博客 6331

qmc5883p芯片坐标系方向定义

问题 最近一个项目用到qmc5883p, 然而确定磁力计方向的时候发现datasheet上写的不是很清楚, 并且example中还有一个设置方向的一步, 于是测试了芯片坐标方向并记录了下来; 该芯片和qmc5883L方向并不一致; 结果 qmc5883P的datasheet给出来如下说明, Y为笔者添加的; 但是这个方向是按照datasheet的example设置的结果: //Define the sign for X Y and Z axis qmc5883p_write_reg(0x2

时有限 4119

爆肝将近 5 万字使用 Python 本地端、服务器端搭建 QQ 智能聊天机器人(新手教程)

01、QQ聊天机器人开发 WebQQ介绍 WebQQ腾讯公司推出的使用网页方式上QQ的服务,特点是无需下载和安装QQ软件,只要能打开WebQQ的网站就可以登录QQ与好友保持联系。具有Web产品固有的便利性,同时在Web上最大限度的保持了客户端软件的操作习惯。 通过WebQQ利用爬虫类的脚本,我们能够接受已登录用户所有好友信息,并且相应的聊天信息。但是2018年12月12日,QQ发布公告,称由于业务调整,webQQ已经于2019年1月1日停止服务,并提示用户下载QQ客户端。 采用Python语言制作方案

唤醒手腕 9566

避坑指南:Unity新版InputSystem在移动端的5个常见问题及解决方案

本文针对Unity新版InputSystem在移动端开发中的常见问题,提供了5个关键解决方案,包括虚拟摇杆灵敏度调节、多点触控冲突处理、按钮反馈延迟优化、手势识别与陀螺仪数据融合以及Android/iOS平台差异处理。这些实战经验帮助开发者高效解决触控适配难题,提升移动游戏体验。

soda5的博客 405

避坑指南:群晖DSM 7.X挂载NTFS硬盘,为什么你的SATA口不行?从原理到实战一次讲清

本文深入解析群晖DSM 7.X系统挂载NTFS硬盘的底层原理与实战排查方法,揭示SATA接口权限配置的关键参数(如esataportcfg和internalportcfg),并提供安全修改端口配置的详细步骤。针对不同型号群晖NAS的配置差异,给出替代方案与常见故障排查技巧,帮助用户解决NTFS硬盘挂载问题。

weixin_26757925的博客 256

python qq机器人 2019_QQ机器人开发

前言:笔者是一名大学生,假期闲着无聊研究了一下QQ机器人,需求是开发一个机器人登记系统,采用一个机器人+网站的模式,截止到发表机器人已经开发差不多,网站还要研究一段时间,总的来说QQ机器人的SDK是比较简单的,之前因为qqweb协议禁止导致qqbot不能用了,此机器人是基于QQsmart协议的。一、 开发工具选择及环境配置工具选择吹爆我的python,这玩意火不是空穴来风的,是真的对新手很友好,登...

weixin_36376992的博客 1045

Sylvester结式法求解多项式方程

Sylvester结式法,结式,消元法,ctfshow 七夕杯 LUCK7,crypto,WriteUp

u010883831的博客 4533

用Python开发QQ机器人详解

mirai生态的核心是Mirai框架,其中包含了mirai-core及mirai-core-api两部分。 其中,前者负责协议相关的内容,而后者负责对外提供操作前者的接口。

Rocky006的博客 951

4、基于球面波展开的近场/远场变换技术解析

本文深入解析了基于球面波展开的近场/远场变换技术,涵盖坐标系统选择、截断测量处理、高级SWE方法及实际应用场景。重点介绍了广义SWE、全探头补偿、平移SNF测量(TSWE)等关键技术,结合吸收材料与导电地板系统的误差处理方案,系统总结了各类方法的优缺点与适用场景,并通过流程图和案例分析展示了技术应用路径。该技术在汽车、通信和航空航天领域的天线测量中具有重要价值,可显著提升测量效率与精度。

dell8的博客 255

Linux 下安装 openjdk 17【详细步骤】

JDK17,安装教程。

甘蓝的专栏 7506

Python开发QQ频道机器人全流程指南:从注册到功能实现

在消息处理函数中,可以通过message.content获取用户输入,调用API实现各种回复功能。平台提供私域和公域两种机器人类型,对于个人开发者来说,私域机器人是更合适的选择,它对服务器要求较低。完成注册后,可以在后台获取BotAppID、机器人令牌和密钥,这些是后续开发必须的参数。对于复杂交互,可以使用指令+参数的模式,例如'/天气 北京'查询特定城市天气。上,这些开发流程可以更高效地完成。实际操作中发现,即使是复杂的机器人项目,从开发到部署的整个过程也变得十分顺畅,大大降低了技术门槛。

JetFalcon67的博客 773

2024-12月js逆向案例-sensor-data之vmp字段之akamai_2/3.0-(下)

akamai2/3的vmp字段逆向分析

十一姐的博客 3146

基于 Mirai QQ机器人 python 开发

环境配置 配置java 环境 java 版本 >= 11 参考文章 下载最新版本的mcl,并配置环境变量 下载最新版本的mcl 登录QQ账号 在项目目录下打开cmd窗口,输入 mcl 当提示 mirai-console started successfully 时表示启动成功 接着在光标处输入login 账号 密码 尝试登录QQ账号 但此时会提示登录失败,原因是需要做滑块验证 解决方案是下载 mirai-login-solver-selenium 处理滑块验证辅助登录 (需要有Chrome 浏

Zz_er的博客 4241

QGC4.0.11界面修改

QGC4.0.11。

超维空间科技的博客 2466

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: 从零基础到网络安全专家:全网最全的网络安全学习路线
下一篇: 网络安全认证CISP、CISSP对比及分析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值