Python 开发 QQ 机器人实战:基于 Mirai 框架
前言
本文旨在介绍如何使用 Python 结合 Mirai 框架开发 QQ 机器人。Mirai 是一个跨平台的 QQ 协议模拟框架,支持多种编程语言。虽然其核心基于 Java/Kotlin,但通过 HTTP API 和 Graia Application 库,我们可以使用 Python 进行高效开发。
假设你已经安装好了 Java、Python 等运行环境。
Mirai 生态简介
要使用 Mirai 开发 QQ 机器人,首先需要了解其生态架构。Mirai 生态的核心是 Mirai 框架,其中包含 mirai-core 及 mirai-core-api 两部分。
- mirai-core:负责协议相关的内容,对开发者不可见。
- mirai-core-api:负责对外提供操作前者的接口,程序员直接打交道的是这部分。
直接使用 mirai-core-api 开发难度较大,官方提供了封装后的 mirai-console,它提供了更方便的开放接口。通常我们开发的是 mirai-console 的插件。
由于原生插件开发需要 Java 或 Kotlin,为了支持更多语言(如 Python),官方社区开发了 mirai-api-http 插件,允许通过 HTTP 请求与 Mirai 交互。

借助 mirai-api-http,开发模式变为:

此处选择 Python 作为开发语言。
起步配置
1. 使用 mirai-console-loader 启动 Mirai Console
为了简化启动流程,官方推出了 mirai-console-loader (简称 mcl),这是一键启动器。
- 下载并解压 mcl。
- 打开命令行,切换到 mcl 所在目录。
- 运行
mcl。
如果启动成功,将看到 Mirai Console 界面。若遇到配置文件错误,需检查 config 目录下的文件并进行相应修改。
2. 处理滑块验证登录
Mirai Console 在登录时无法自动处理滑块验证码。我们需要使用 mirai-login-solver-selenium 辅助登录。
- 停止当前运行的 MCL。
- 在命令行添加插件:
mcl --update-package net.mamoe:mirai-login-solver-selenium --channel nightly --type plugin - 重新运行 MCL。
如果遇到 Chromedriver 下载失败,需手动下载对应版本的 Chromedriver 并替换到 MCL 目录下的 chromedriver 文件夹中。确保文件名与日志提示的版本一致。
重启后输入命令 ,浏览器窗口会弹出完成滑块验证。

