Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
在本教程中,我们将使用Python和Mirai来开发一个QQ机器人,本文提供了三个教学视频,包教包会,本文也很贴心贴了代码和相关文件。话不多说,直接开始教学。
目录
一、安装配置MIrai
图片验证码报错:
二、机器人的认证与绑定
视频教学
代码
认证和绑定
主程序
三、好友信息监听
视频教学
四、发送好友消息
调用库
程序
五、总结
六、补充
http.client和requests库异同
一、安装配置MIrai
安装配置MIrai
在本视频中几个下载地址如下:
https://github.com/mamoe/mirai
https://github.com/project-mirai/mirai-api-http
https://github.com/MrXiaoM/qsign
大家打不开的话,可以用我的百度地址,里面有三个文件。
链接:https://pan.baidu.com/s/1Wi4AcMIwl373Xe8sbbFnJg?pwd=1111
提取码:1111
图片验证码报错:
大家可以看Mirai文档,有的登录出现了要验证,可以看这个链接,详细介绍了怎么填写图片验证码返回值。
本人解决方法:
- 控制台会返回一个滑块地址,我们用浏览器打开。
- 打开开发者工具,移动滑块,完成验证。
- 在
Network
中找到名为cap_union_new_verify
的请求, 在ticket 后那一坨就是要输入回 mirai 的内容 - 回到控制台粘贴就可以了。
注意
- 复制的时候记得删掉引号(
"
, 前后都有一个), 那个不是ticket内容 - 速度要快
- 注意不要漏字符(没复制完, 后面还有很长)
- 可以先开一次试一下手(不输入ticket) 然后重启进行滑块
二、机器人的认证与绑定
到这里,大家登录成功就成功了99%,为什么这么说呢,后面就是写代码了。
视频教学
机器人的认证与绑定
代码
为了方便大家学习,我把视频中的代码也放在了下面,如下:
class bot:def __init__(self,host="localhost",port = 8080,verifyKey="ccbot"):""":param host: 监听地址:param port: 监听端口:param verifyKey: key"""self.VisitHttpPath=http.client.HTTPConnection(host,port)self.verifyKey=verifyKeyself.sessionKey = self.bind()
认证和绑定
下面是http.client方法:
def bind(self):auto = json.dumps({"verifyKey":self.verifyKey})VisitHttpPath = self.VisitHttpPathVisitHttpPath.request("POST","/verify",auto)response = VisitHttpPath.getresponse()session = response.read().decode("utf-8")print("认证成功:"+str(session))sessionKey = json.loads(session)['session']bind = json.dumps({"sessionKey":sessionKey,"qq":2368214676})VisitHttpPath.request("POST",'/bind',bind)response = VisitHttpPath.getresponse().read().decode("utf-8")print("绑定成功:" + str(response))return sessionKey
大家可以用http.client或者request方法(文末介绍异同)。下面介绍requests方法。
url = "http://localhost:8080/verify"
data = {"verifyKey":"ccbot"}
res = requests.post(url,json=data)
print(res.text)sessionKey = json.loads(res.text)['session']
url = "http://localhost:8080/bind"
bind = {"sessionKey":sessionKey,"qq":填你机器人QQ号}
res = requests.post(url,json=bind)
print(res.text)
主程序
if __name__ == '__main__':b = bot()
三、好友信息监听
你完成第二步,就成功了,后面就是收发信息了,大家可以对照文档自行研究。Mirai | mirai (mamoe.net)
视频教学
好友消息监听
这个大家可以跟着我视频一起敲代码。
四、发送好友消息
大家可以直接运行下面的代码,看自己的QQ有没有收到消息。
调用库
import requests
import json
程序
url = "http://localhost:8080/verify"
data = {"verifyKey":"ccbot"}
res = requests.post(url,json=data)
print(res.text)sessionKey = json.loads(res.text)['session']
url = "http://localhost:8080/bind"
bind = {"sessionKey":sessionKey,"qq":填你机器人QQ号}
res = requests.post(url,json=bind)
print(res.text)url = "http://localhost:8080/sendFriendMessage"send_message = {"sessionKey":sessionKey,"target":填你要接受消息的QQ号(须是好友),"messageChain":[{ "type":"Plain", "text":"你好" },]}
print(send_message)
res = requests.post(url,json=send_message)
print(res.text)
五、总结
看到这里,相信你们都成功,喜欢的话,给文章点点赞,有疑问的话,可以加群讨论或者评论区留言。
看看效果图吧:
六、补充知识点
到这里,大家的功能基本上都实现了,这里就和搭建QQ机器人就没有多大关系了,可以跳过。
http.client和requests库异同
http.client和requests库都可以用于发送HTTP请求,但它们有一些不同之处。
导入方式:
http.client
模块是通过导入http.client
来使用的。requests
库是通过导入requests
来使用的。发送请求的方式:
http.client
模块提供了低级别的HTTP通信功能,可以创建不同类型的连接(如HTTP、HTTPS等),并使用request()
方法发送请求。requests
库提供了更高级别的HTTP请求功能,可以更方便地发送不同类型的请求(如GET、POST等),而无需关注底层的通信细节。响应处理方式:
http.client
模块通过getresponse()
方法获取响应,然后可以使用响应对象的方法和属性来获取响应的内容。requests
库返回一个Response对象,可以使用该对象的属性和方法来获取响应的内容。异步支持:
http.client
模块提供了异步支持,但使用起来相对复杂。requests
库本身不支持异步请求,但可以通过异步库(如asyncio)结合使用。其他功能:
http.client
模块提供了更多的低级别控制,例如设置头部、处理重定向等。requests
库提供了更简单和易用的API,例如处理Cookie、Session等。
总之,选择使用哪种方法取决于你的需求和偏好。如果你需要更多的控制和灵活性,可以选择使用http.client
模块。如果你更关注易用性和简洁性,可以选择使用requests
库。
相关文章:
![](https://img-blog.csdnimg.cn/f548d56f81ba40358357827e7405fd22.png)
Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
在本教程中,我们将使用Python和Mirai来开发一个QQ机器人,本文提供了三个教学视频,包教包会,本文也很贴心贴了代码和相关文件。话不多说,直接开始教学。 目录 一、安装配置MIrai 图片验证码报错: 二、机器…...
算法笔记:堆
【如无特别说明,皆为最小二叉堆】 1 介绍 2 特性 结构性:符合完全二叉树的结构有序性:满足父节点小于子节点(最小化堆)或父节点大于子节点(最大化堆) 3 二叉堆的存储 顺序存储 二叉堆的有序…...
![](https://img-blog.csdnimg.cn/3e72ca354c094ddba95ccb7d19c3e710.png)
vue3 判断包含某个字符
<img v-if"node.level 1 && checkIfIncludeSubStr(node.label, 人口)"src"/assets/images/icon-convention-01.png" width"16"class"inlineBlock Vmiddle" style"margin-right: 8px;"/>const data reactive…...
![](https://www.ngui.cc/images/no-images.jpg)
MySQL的故事——查询性能优化
查询性能优化 文章目录 查询性能优化一、查询优化器的提示(hint)二、优化特定类型的查询 一、查询优化器的提示(hint) HIGH_PRIORITY和LOW_PRIORITY 这个提示告诉MySQL,当多个语句同时访问某一个表时,哪些语句的优先级相对高些,哪些相对低些…...
![](https://img-blog.csdnimg.cn/img_convert/5d68172e62ff110d553c1962e59909d2.png#pic_center)
在外SSH远程连接macOS服务器【cpolar内网穿透】
文章目录 前言1. macOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接macOS3.1 macOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接macOS 4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址 5. 使用固定TCP端口地址ssh远程 …...
![](https://img-blog.csdnimg.cn/img_convert/e4f0d941f117a510cfd2d1078240d59b.png)
Nosql数据库服务之redis
Nosql数据库服务之redis 一图详解DB的分支产品 Nosql数据库介绍 是一种非关系型数据库服务,它能解决常规数据库的并发能力,比如传统的数据库的IO与性能的瓶颈,同样它是关系型数据库的一个补充,有着比较好的高效率与高性能。 专…...
![](https://img-blog.csdnimg.cn/ff56a740fee44bb888bcbbf08a64a055.png#pic_center)
当AI遇到IoT:开启智能生活的无限可能
文章目录 1. AI和IoT的融合1.1 什么是人工智能(AI)?1.2 什么是物联网(IoT)?1.3 AI和IoT的融合 2. 智能家居2.1 智能家居安全2.2 智能家居自动化 3. 医疗保健3.1 远程监护3.2 个性化医疗 4. 智能交通4.1 交通…...
![](https://img-blog.csdnimg.cn/ee745532163c4c11ba0c33837c57dcf7.png)
Qt5界面Qt Designer上添加资源图片后,ModuleNotFoundError: No module named ‘rcc_rc‘ 的终极解决方案
在网上找了很久都没弄明白,最后还是自己思考解决了。 起因: 用 Qt Designer 添加资源文件作为背景图,编译 \resource\static\qrc> pyuic5 -o .\xx.py .\xx.ui发现在 xx.py 文件末尾中多了一个语句: import rcc_rc然后运行就…...
![](https://www.ngui.cc/images/no-images.jpg)
社群运营怎么做?
社区运营虽然说起来简单,可是实际执行起来却常常发现无从下手。刑天营销曾经做过社区运营的案子,我们也总结一套自己的方法,要做好社群运营,以下的这些问题就不能忽视: 一、做好社区定位 做社区运营,首先…...
![](https://img-blog.csdnimg.cn/9d865a6fdfc74834a9f980d55ec489b8.png)
Vite,Vue3项目引入dataV报错的解决方法
背景:开发一个大屏项目中,需要是要DataV的那边边框,装饰等,只是DataV是基于vue2的,vue3版的作者还在开发中,于是翻了DataV的源码,发现使用esm方式时是直接引入源码而不经过打包,其源码中使用的vue语法vue3也支持,所以可以直接在vue3中引入使用. vite,vue3项目直接引入DataV 安…...
![](https://img-blog.csdnimg.cn/b86a1238cf6341d9a55c56e654dfb654.png)
QT(8.30)常用类与组件,实现登录界面
1.作业: 完成一个登录界面(图片未附带): 头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#include <QLineEdit>//行编辑器#include<QIcon>//图标#include<QLabel>//标签#include<QPushButton>//按钮#include<QIc…...
![](https://img-blog.csdnimg.cn/fd8aa3bfd19b43a6adfba9a3595b161c.png)
【Two Stream network (Tsn)】(二) 阅读笔记
贡献 将深度神经网络应用于视频动作识别的难点,是如何同时利用好静止图像上的 appearance information以及物体之间的运动信息motion information。本文主要有三点贡献: 1.提出了一种融合时间流和空间流的双流网络; 2.证明了直接在光流上训…...
![](https://www.ngui.cc/images/no-images.jpg)
记一次语音播报功能
浏览器本身就可以读文字 写功能前一直以为该功能得调用第三方平台的API才可以文字合成语音后用音频播放,原来HTML5已经支持了该功能(TTS)了 SpeechSynthesis 和 SpeechSynthesisUtterance SpeechSynthesis SpeechSynthesisUtterance let …...
![](https://img-blog.csdnimg.cn/e74153160d714f0ba4bdb3e011b42c43.png)
Unity设置TextMeshPro文本超出范围显示...
TextMtshPro文本超出范围,展示省略。选择Overflow为Ellipsis。...
![](https://img-blog.csdnimg.cn/79b71d69029245b48ed811d578c6e2d3.png)
Java中级面试题记录(三)
1.职业规划? 2.每家公司离职原因? 3.SpringCloud用到了哪些组件? GateWayNacosOpenFeignSeataHystrix 4.PG和Mysql的区别? 5.两种数据库的存储区别? 6.MySQL索引了解的内容? 一口气搞定索引的所有知识…...
![](https://www.ngui.cc/images/no-images.jpg)
spring高级源码50讲-1-8(spring容器与bean)
文章目录 容器与 bean1) 容器接口演示1 - BeanFactory 与 ApplicationContext 的区别关键代码参考 收获💡演示2 - 国际化 2) 容器实现演示1 - DefaultListableBeanFactory代码参考 收获💡演示2 - 常见 ApplicationContext 实现代码参考 收获💡…...
![](https://img-blog.csdnimg.cn/129d53d3d4f248b0bb5889e2b647c689.png)
微服务06-Dockerfile自定义镜像+DockerCompose部署多个镜像
常见的镜像在DockerHub能找到,但是我们自己写项目得自己构造镜像 1 镜像结构 作用:提高复用性,当应用需要更新时,不再是整个系统重装进行更新 ,而是对需要更新的部分进行更新,其他地方不动——>这就是分…...
![](https://img-blog.csdnimg.cn/b224b395e6b74be5a826166d2e413982.png)
2023高教社杯 国赛数学建模A题思路 - 定日镜场的优化设计
1 赛题 A 题 定日镜场的优化设计 构建以新能源为主体的新型电力系统, 是我国实现“碳达峰”“碳中和”目标的一项重要 措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。 定日镜是塔式太阳能光热发电站(以下简称塔式电站)收集太阳能的基本组件&…...
![](https://img-blog.csdnimg.cn/18d763edefe84d5e8f086515b5762b8b.png)
Qt +VTK+Cmake 编译和环境配置(第二篇,中级篇, 重新编译)
1.下载VTK和Cmake 这里不介绍了。我的VTK 8.2.0 cmake 3.27.4 就是不服这编译器了。重新来一次 打开Cmake,把VTK源文件路径和目标路径设置一下(目标路径自己设置,随意) 点击Configure:。 点击下一步 选择好 Qt的gcc…...
![](https://img-blog.csdnimg.cn/fc846ea34ac446aea64b5aa433760076.png)
图的学习,深度和广度遍历
一、什么是图 表示“多对多”的关系 包括: 一组顶点:通常用V(Vertex)表示顶点集合一组边:通常用E(Edge)表示边的集合 边是顶点对:(v, w)∈E,其中v,w∈V有向边<v, w&…...
![](https://www.ngui.cc/images/no-images.jpg)
ChatGPT驱动下,网站AI客服该如何进步和创新
在ChatGPT这个AI智能的驱动下,网站AI客服在进步和创新方面有很多潜力。由于GPT模型的强大语言处理能力和智能对话技巧,使得网站AI客服能够更准确和流畅地与用户交互。looklook今天总结了一些网站AI客服智能的进步和创新方向,以供大家参考。 网…...
![](https://img-blog.csdnimg.cn/img_convert/c32c69917ad2340bf1558b9ff3d80111.png)
Linux系统中实现便捷运维管理和远程访问的1Panel部署方法解析
文章目录 前言 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理…...
![](https://www.ngui.cc/images/no-images.jpg)
数学建模黄河水沙监测数据分析
数学建模黄河水沙监测数据分析 问题: 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变化和人民生活的影响,以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾等方面都具有重要的理论指导意义。 解题思…...
![](https://img-blog.csdnimg.cn/f90b707765ba4d37a725bab7f4f7621e.png)
Unity ProBuilder(自己创建斜面、拐角)
目录 基础操作 下载 打开面板 新增对象 材质保存 1.斜面实例 2.拐角实例 3.切割实例 4.单独面赋值 基础操作 下载 打开面板 新增对象 选中想创建的块体后,在编辑器见面拉出块体 材质保存 打开材质编辑器后,将材质赋值,之后&am…...
![](https://img-blog.csdnimg.cn/9184677f1d8f45158177ada3eed07a76.gif)
以气象行业为例,浅谈在ToB/ToG行业中如何做好UI设计
商业气象公司是典型的TOB/TOG性质的公司,客户包括农业、能源、航空航天、交通运输、建筑工程等行业,它们需要准确的气象数据、预报和分析来支持业务决策和运营管理。商业气象公司通常会提供各种气象服务,如气象数据采集与分析、预报产品、风险…...
![](https://img-blog.csdnimg.cn/b8f0e4c0f52e4ef1bba95ac5fdf4f3eb.png)
shiny根据数据的长度设置多个色板
shiny根据数据的长度设置多个色板 library(shiny) library(colourpicker) ui <- fluidPage(# 添加一个选择颜色的下拉菜单uiOutput("color_dropdown") )server <- function(input, output) {# 数据长度data_length <- reactive({length(c("数据1"…...
![](https://www.ngui.cc/images/no-images.jpg)
2023高教社杯 国赛数学建模D题思路 - 圈养湖羊的空间利用率
1 赛题 D 题 圈养湖羊的空间利用率 规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养, 适应不同种类、不同阶段 的牲畜对空间的不同要求,以保障牲畜安全和健康;与此同时,也要尽量减少空间闲置所造成 的资源浪费。在实际…...
![](https://img-blog.csdnimg.cn/ad4015dba18347c99b6aa3c26212ea31.png)
网络是如何进行通信
网络是如何进行通信的 简介 在现代社会中,网络已经成为我们生活中不可或缺的一部分。从上网搜索信息、在线购物到远程工作和社交媒体,我们几乎无时无刻不与网络保持着联系。但是,网络究竟是个什么玩意,它是如何工作的呢…...
![](https://www.ngui.cc/images/no-images.jpg)
vue3 watch watchEffect
watch & watchEffect 函数都是监听器, 用于监视数据的变化; watch 有惰性,watchEffect 无惰性;watch 需要指定具体的监视属性,watchEffect 不需要指定具体的监视属性和配置参数,会自动感知代码依赖;watch 能获取到…...
![](https://www.ngui.cc/images/no-images.jpg)
lintcode 1410 · 矩阵注水【BFS 中等 vip】
题目链接,描述 https://www.lintcode.com/problem/1410 给一个二维矩阵,每个grid的值代表地势的高度。水流只会沿上下左右流动,且必须从地势高的地方流向地势低的地方。视为矩阵四面环水,现在从(R,C)处注水,问水能否…...
![](/images/no-images.jpg)
天津市做网站公司/营销策略是什么意思
pip install --upgrade pkgname pip list #指定版本号 pip intstall --upgrade pkgname3.6.0 pip uninstall pkgname pip show opencv-python #查看version等...
![](/images/no-images.jpg)
网站开发与设计难嘛/深圳外贸推广公司
几年前,一篇表述“10个Scala函数式单行代码”的文章非常受欢迎,并且随后立马出现了其他的语言版本,例如Haskell版本,Ruby版本,Groovy版本,Clojure版本,Python版本,C#版本,…...
![](/images/no-images.jpg)
北京高端网站建设宣传/网络营销推广专家
处理器不能直接解释一个程序集。程序集采用的是另一种语言,即公共中间语言(Common Intermediate Language, CIL),或者简称为中间语言(IL)。 注意:CIL的另一种说法是MSIL,…...
![](/images/no-images.jpg)
百度有哪些网站可免费做软件推广/淘特app推广代理
用css实现网页背景渐变的代码如下: 一、从上往下渐变 Example Source Code:body{FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType0,startColorStr#ffffff,endColorStr#000000);} 二、从左上至右下渐变 Example Source Code:body{FILTER: Alpha( s…...
![](https://img-blog.csdnimg.cn/img_convert/eb64922677b1af16f83c7cfded709fad.png)
做网站都得会什么技术/广州网站优化排名系统
在Android中,调用系统相机拍照时,将会接收到返回的图像数据,但是这些图片并不是全尺寸的图像,而是系统给的缩略图,当对拍照的图片进行裁切后显示时,得到的却是模糊的图片。下面针对这个问题提出解决的方法。…...
![](/images/no-images.jpg)
枣庄市建设局网站/seo是广告投放吗
使用Java完成Excel文件的上传、内容的解析和以及保存操作。重点主要在于使用org.apache.poi包下的Workbook类完成对Excel内容的解析首先pom文件引入Apache poi,org.apache.poipoi-ooxml3.9Apache POI提供API给Java程序对Microsoft Office(Excel、Word、PowerPoint等…...