iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么用Python开发QQ机器人
  • 625
分享到

怎么用Python开发QQ机器人

2023-06-15 12:06:26 625人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“怎么用python开发QQ机器人”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用python开发QQ机器人”吧! 前言 虽然该文最终是达到以Pyt

这篇文章主要讲解了“怎么用python开发QQ机器人”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用python开发QQ机器人”吧!

 前言

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

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

mirai生态

  • mirai官方生态文档[1]

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

  •  mirai生态汇总图

怎么用Python开发QQ机器人

  •  简单来说,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的插件,如下面的模式: 

怎么用Python开发QQ机器人

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

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

怎么用Python开发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。如下图:    

怎么用Python开发QQ机器人

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

怎么用Python开发QQ机器人

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

怎么用Python开发QQ机器人

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

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

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

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

  •  应该是会出错的,因为mirai-console在登录时,不能处理滑块验证:

怎么用Python开发QQ机器人

  •  于是我们需要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是什么版本       

怎么用Python开发QQ机器人

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

       3.  找到一个版本号相近的即可,例如我就下载 86.0.4240.22   

怎么用Python开发QQ机器人

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

       5.  结束之前运行的mcl命令行程序,然后将准备好的chromedriver-86.0.4240.198.exe, 替换到以下目录

怎么用Python开发QQ机器人       

       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文件夹下,如图    

怎么用Python开发QQ机器人

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

怎么用Python开发QQ机器人

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

    1.  下载 open JDK[6],例如我下载如图所示的版本:

怎么用Python开发QQ机器人

    2.  解压open JDK, 并放在你认为合适的位置,例如我放在如下图所示的位置: 

怎么用Python开发QQ机器人

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

怎么用Python开发QQ机器人

怎么用Python开发QQ机器人

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

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

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

  •  首先对mirai-api-http进行配置,如图:

怎么用Python开发QQ机器人

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

# 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的配置,稍作修改。然后运行 

from 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(looploop=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!,则表示运行成功

  •  成功所示如下:    

怎么用Python开发QQ机器人

结语

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

感谢各位的阅读,以上就是“怎么用Python开发QQ机器人”的内容了,经过本文的学习后,相信大家对怎么用Python开发QQ机器人这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么用Python开发QQ机器人

本文链接: https://www.lsjlt.com/news/280296.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用Python开发QQ机器人
    这篇文章主要讲解了“怎么用Python开发QQ机器人”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python开发QQ机器人”吧! 前言 虽然该文最终是达到以pyt...
    99+
    2023-06-15
  • 如何利用Python来开发一个QQ机器人
    今天就跟大家聊聊有关如何利用Python来开发一个QQ机器人,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。安装方法可在 Python个版本下使用,用 pip 安装:pip insta...
    99+
    2023-06-17
  • python QQ机器人
    通过第三方库qqbot来实现,pip install qqbot 直接安装就行脚本直接运行会弹出二维码,手机qq扫码登录即可通过#weather# city 来查询天气预报通过#study# key value 来进行学习,以json格式存...
    99+
    2023-01-31
    机器人 python QQ
  • PHP开发基于Mirai的QQ机器人(二)
    Miria 搭建 (二) 本文简介 本文讲解高效率QQ机器人框架Mirai。 本文发布于 Mirai V2 由于QQ机器人常被部署在服务器,所以我只讲解 Linux 的部署方式。 本文针对P...
    99+
    2023-09-04
    php 机器人 服务器
  • 基于chatgpt开发QQ机器人原理分析
    目录一、概述1.1 技术栈1.2 项目结构二、开始部署三、启动mirai3.1 初始化mirai3.2 在mirai上登录QQ3.3 自动登录四、编写配置文件五、验证5.1 启动mi...
    99+
    2023-05-18
    chatgpt开发QQ机器人 chatgpt机器人
  • Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
    在本教程中,我们将使用Python和Mirai来开发一个QQ机器人,本文提供了三个教学视频,包教包会,本文也很贴心贴了代码和相关文件。话不多说,直接开始教学。 目录 一、安装配置MIrai 图片验证码报错: 二、机器人的认证与绑定 视频教...
    99+
    2023-09-09
    python 机器人 开发语言 pycharm
  • 怎么使用Python对接OpenAi API实现智能QQ机器人
    这篇文章主要介绍“怎么使用Python对接OpenAi API实现智能QQ机器人”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Python对接OpenAi API实现智能...
    99+
    2023-07-05
  • 怎么使用java开发语音交流机器人
    要使用Java开发语音交流机器人,可以使用一些现有的Java库和工具来实现。以下是一些步骤:1. 选择一个语音识别和语音合成的API...
    99+
    2023-08-28
    java
  • java怎么开发语音交流机器人
    要开发语音交流机器人,可以使用Java中的一些相关库和技术来实现。以下是一种可能的实现方法:1. 语音识别:使用Java中的语音识别...
    99+
    2023-08-31
    java
  • 学习Python,开发智能聊天机器人
    学习 Python,开发智能聊天机器人,需要具体代码示例 随着人工智能技术的不断发展,智能聊天机器人已经成为了人们对未来生活的一种想象。而 Python 作为一种简单易学、功能强大的编程语言,也成为了众多开发者实现智能聊天机器人...
    99+
    2024-01-19
    聊天机器人 智能 Python
  • Python NLP开发之实现聊天机器人
    目录1、简介2、代码测试2.1 open.drea.cc2.2 api.ruyi.ai2.3 route.showapi.com2.4 api.binstd.com2.5 api.j...
    99+
    2023-05-19
    Python实现聊天机器人 Python聊天机器人 Python聊天 Python 机器人
  • 如何用Python开发数字货币交易机器人
    今天就跟大家聊聊有关如何用Python开发数字货币交易机器人,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。众所周知,币圈一天,人间一年。我们进行数字货币交易时,在交易所 APP 或者...
    99+
    2023-06-16
  • 如何使用Python开发基于ChatGPT的聊天机器人
    如何使用Python开发基于ChatGPT的聊天机器人随着人工智能的不断进步,聊天机器人已经成为了许多网站和应用程序的常见功能。而ChatGPT(Generative Pre-trained Transformer)是OpenAI开发的一种...
    99+
    2023-10-24
    聊天机器人 ChatGPT Python
  • 基于Python实现开发钉钉通知机器人
    目录1.准备2.Python 钉钉机器人通知代码3.钉钉机器人支持Markdown在项目协同工作或自动化流程完成时,我们需要用一定的手段通知自己或他人。比如说,当服务器CPU使用率达...
    99+
    2023-02-07
    Python钉钉通知机器人 Python钉钉通知 Python钉钉机器人
  • 使用Python对接OpenAi API实现智能QQ机器人的方法
    目录实践开始-实践篇第一实践继续-实践篇第二实践继续-实践篇第三简介尾述最近火热全文的ChatGPT,被很多人玩出了花,我们在Github上可以看到几个常见的逆向SDK包,这一篇我将...
    99+
    2023-03-21
    OpenAI ChatGPT 智能机器人
  • 量化交易机器人开发,交易所刷量机器人
    量化交易机器人开发,交易所刷量机器人量化交易机器人,操作如此简单告别劳累的手动交易,告别情绪化亏损,实时采集大数据,实时计算每个品种稳健交易的区间,优化追踪止盈和防瀑布机制。交易所对数据修改和机器人刷量区别:从技术上讲,数据的修改风险高,随...
    99+
    2023-06-05
  • python3开发机器人的方法是什么
    开发机器人可以采用以下方法:1. 使用Python编写自然语言处理(NLP)模型:使用Python的NLP库,如NLTK、SpaCy...
    99+
    2023-08-26
    python3
  • 使用Python怎么开发一个个人云盘应用
    本篇文章为大家展示了使用Python怎么开发一个个人云盘应用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、lo...
    99+
    2023-06-14
  • 超详细,教你用python语言实现QQ机器人制作教程
    目录前期准备1、机器人框架的下载和配置2、python的配置和安装具体实现1、发送信息(1)比如发送私聊信息(QQ用接收者的):(2)发送群聊信息(群号自己用一个):(3)当然不止发...
    99+
    2024-04-02
  • python 调用百度文心一言接口开发聊天机器人
    要使用Python调用百度文心一言接口开发聊天机器人,可以按照以下步骤进行: 注册百度智能云账号并创建一个API密钥。安装Python的requests库和BeautifulSoup库。可以使用以下命令进行安装: shellpip ins...
    99+
    2023-09-02
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作