Python搭建QQ机器人,监控QQ发言与进群退群,自动@新成员并屏蔽脏话踢人

article/2025/9/17 23:45:13

目录

前言

原理

准备

        go-cqhttp插件安装

        nonebot框架的安装

插件的拓展

效果

警告 


前言

        emmmm,大家好,我叫善念。有点懒 好久没有给大家更新教程了。今天给大家带来的项目比较有趣,而且非常简单,简称 有手即可!

        很多人应该都经历过,当你进入一些Python学习交流群的时候突然来了一封邮件,或者一些进群的自动@机器人。今天咱们要实现的就是这些相关功能!

        讲句心里话,我写的一些文章有些无法过审都烂在仓库里(几个小时白费),本身都是想要大家学习参考,包括我的文章内容都非常详细,大家也是有目共睹的。

        非常恳求你们的一键三连

原理

        利用go-cqhttp插件获取咱们的QQ相关数据,包括截取咱们的各类聊天(聊天信息)、信息事件(进群退群之类的)。然后利用nonebot框架来反向截取go-cqhttp截留到的数据,使我们能够利用到这些信息事件。

        是不是一脸懵逼了。其实没有大家想象的复杂,简而言之就是利用go-cqhttp插件在cmd中打印出登陆的QQ账号的事件,然后用nonebot框架来反向截取go-cqhttp截留到的数据,供我们在pycharm中用代码去利用这些事件。

        比如go-cqhttp插件截留到的数据:

     nonebot框架来反向截取go-cqhttp截留到的数据:

        为什么不让你们去细究而是我直接通俗的讲下使用的方法呢,因为我觉得如果你让我讲解里面的一些真正底层原理,我自己也没这个本事,但是我可以教你如何简单的使用。

准备

        go-cqhttp插件安装

                进入官网

                        

              根据自己的操作系统去下载相对应的版本:

如果你下载的是zip软件包,那么它应该是这样的:

双击exe文件后 全部点是的, 会生成一个.bat文件 

 双击.bat文件后选择反向websocket连接的方式。

它会生成一个config配置文件,暂且不管它。但是它非常重要! 

重新打开.bat文件,

登陆你的账号,首次登陆一般为扫码登陆,里面的登陆协议好像是随机的ipad或者手表之类的。

登陆后会生成session文件与device文件,分别保存了咱们的账户信息(cookis)与登陆的设备信息。

此时,咱们已经成功了一半,已经实现了在cmd中打印出截留到的数据,剩下的就是如何对接Python把这些数据弄到咱们的pycharm(你也可以使用其它的IDE)中去。

        nonebot框架的安装

                       进入官网

         

        可以看到一个很关键的地方,Python解释器的版本必须为3.7以及以上版本。简单的pip安装模块即可。

        如果你是这样做的,那么就做错了,咱们的nonebot已经出到v2版本了,这个是v1的很多功能都残缺了。

        所以请进入到v2版本官网

        怎么安装模块就不多讲了,有手就行。

        然后就是看文档咯,我这里就直接教大家怎么简单的使用了。首先创建一个目录结构。

        如我所创:

        我标记的两个文件,咱们暂时可以不用。就很简单的一个目录结构了,plugins下面的文件为我们的功能插件,我们想要实现的功能都写在这个里面,比如进群@,或者别的功能。

         bot.py为咱们的主程序,启动主程序后调用咱们的插件即可:

import nonebot
from nonebot.adapters.cqhttp import Bot as CQHTTPBot
from nonebot import on_notice
from nonebot.typing import T_State
from nonebot.adapters import Bot, Event
from nonebot.adapters.cqhttp.message import Message
from nonebot.adapters.cqhttp import GroupIncreaseNoticeEvent,GroupDecreaseNoticeEvent
nonebot.init()
driver = nonebot.get_driver()driver.register_adapter("cqhttp", CQHTTPBot)
# nonebot.load_builtin_plugins()
nonebot.load_plugin("awesome_bot.plugins.squer")
app = nonebot.get_asgi()if __name__ == "__main__":nonebot.run(host='127.0.0.1', port=28655)

        像我这里就是调用了squer插件,这里值得注意的是我写了一句

nonebot.run(host='127.0.0.1', port=28655)

        表明机器人的地址运行在这里,那么我们是如何实现go-cqhttp与nonebot连接起来的呢?当然这个ip与端口都要对应才能连接起来咯,所以我们的config.yml文件就要利用起来了,修改里面的参数:

         这样子咱们就实现了基本的功能了。

插件的拓展

        关键插件的编写千变万化,相对应的API我建议看官方文档,比如我写的就是一个进群或者退群直接发邮件的插件:

from nonebot import on_notice
from nonebot.typing import T_State
from nonebot.adapters import Bot, Event
from nonebot.adapters.cqhttp.message import Message
from nonebot.adapters.cqhttp import GroupIncreaseNoticeEvent,GroupDecreaseNoticeEvent
import requests
# -*- coding: utf-8 -*-
import tkinter as tk
from tkinter import *
from tkinter import ttk
from PIL import ImageTk
import webbrowser
import os
import win32ui
import requests
import time
import threading
from queue import Queue
from tkinter import messagebox
import uuid
import windnd
import random
import string
from requests_toolbelt import MultipartEncoder
welcom = on_notice()@welcom.handle()
async def welcome(bot: Bot, event: GroupIncreaseNoticeEvent, state: T_State):user = event.get_user_id()yx = str(user+'@qq.com').strip()print(yx)sendmail(yx)

效果

警告 

        切勿用于任何非法用途,仅供学习参考。除学习意外的用途切勿联系我,关键插件的邮件部分请自行编写。


http://chatgpt.dhexx.cn/article/VZOWOtaq.shtml

相关文章

用户唯一登录,最新登录挤掉以前的登录,实现踢人.

最近在做一个功能,要求是这样的:相同的账号,例如admin账号,在A电脑登录成功,然后admin账号在B电脑登录,系统发现admin账号出现了重复登录,A电脑上登录的admin账号就会被退出登录。 流程图&…

企业微信群管理员可以踢人吗?企业微信群怎么自动踢人?

我们使用企业微信运营客户时,总会有人在企业微信群里面发广告、链接,非常影响其他客户的体验,有没有什么方法将这些人踢出群聊呢? 企业微信群怎么自动踢人? 在企业微信推出群防骚扰功能之前,群管理员最无奈…

spring boot + shiro 实现登陆 踢出用户功能 (挤人) 以及UnknownSessionException异常问题 记住我功能

简介:踢出用户功能:就是限制一个账号登陆人数。 本文限定一个账号一个用户登陆,并且是挤掉前一个用户 目录 首先 pom 然后Shiro配置Bean ShiroConfigBean 然后配置 ShiroRealm(百度翻译: Realm 领域) 然…

java怎么实现踢掉在线用户_Java多人在线聊天室(3)— 踢人下线功能

作为一个聊天室,肯定会有很多人在里面聊天,那么要是有人里面捣乱怎么办?直接踢人不解释。 我们在创建数据库的时候就有这样的考虑,所以我们的账户有两种,一种是管理员,一种是普通用户。 打开的数据库&#…

Shiro实现session限制登录数量踢人下线

Shiro实现session限制登录数量踢人下线 前言实现■ 架构准备ShiroConfig ■ redis内的存储分布■ 代码修改修改 JedisSessionDAO修改 SystemAuthorizingRealm新增 ApiLogoutFilter再次修改 JedisSessionDAO 最后 前言 近年无状态登录兴起,但sessionId方式仍是主流方…

SAP SM04踢人操作(摘录)

管理员在SAP系统中,使用事物码SM04对当前登录在线用户(User)进行管理,可查看服务器全部客户端(Client)的用户的在线状态,并可以结束指定用户的会话状态,也就是强制踢出用户。 双击查…

出生率新低!1978-2020中国人口出生率、死亡率及自然增长率变迁

根据国家统计局近日发布的《中国统计年鉴2021》,2020中国人口出生率为8.52‰,再创历史新低。同时,2020中国人口自然增长率仅为1.45‰,勉强维持正增长,同样是历史新低。 下面的视频记录了1978-2020中国人口出生率、死亡…

百度迁徙大数据整理[2020+2019同期]

统筹推进疫情防控和经济社会发展工作是常态化疫情防控阶段促进中国经济恢复的必然选择。基于百度地图迁徙大数据,采用双重差分模型探究不同阶段的疫情防控措施对中国人口流动的影响。结果表明,早期的疫情超常规防控措施有效控制了人口流动,导…

【SQLPlanet】基于迁徙率等指标浅析拍拍贷逾期数据(未完待续)

1、背景介绍 拍拍贷是一家金融科技公司,2007年成立于上海,并在2017年11月10日成功于美国纽交所上市。根据官方消息,截至2018年9月30日,拍拍贷累计成交额已突破1300亿,15-29天及30-59天的逾期率分别为0.83%和1.21%&…

百度迁徙 迁入人口和迁徙规模爬虫

最近做COVID-19相关的课程项目,需要用到省级间人口迁移的数据。笔者参考改进了https://blog.csdn.net/qq_44315987/article/details/104118498 的城市间流动的代码,从百度迁徙爬取了数据,并将数据保存在同一张表内。 迁入人口 # coding:utf…

百度大数据迁徙

我记得,百度地图应该是2018年开始做每年春运出行大数据迁移,2019年加入了国庆的迁移大数据分析。这是纯免费的大数据分析数据,相当有意思,但是不作保存,每年做个记录,应该是件有价值的事。 从整体来看&…

什么是计算迁移

0 1 计算迁移背景 边缘计算将网络边缘上的计算、存储等资源进行有机融合,构建成统一的用户服务平台,按就近服务原则对网络边缘节点任务请求及时响应并有效处理。由于边缘节点能力、资源、带宽、能源等受限,计算迁移便异常重要。计算迁移是边缘…

迁徙数据平台简单介绍

引言 人口迁徙数据是研究人口流动、人口迁徙以及城市发展的重要数据源。近年来,受新冠肺炎疫情影响,以及互联网的快速发展,相关数据受到广泛关注与应用,以人口迁徙数据为基础的科学研究也层出不穷。在这里,就对几种常…

人口迁徙大数据(2019-2020年)

人口迁徙大数据具有极高的研究价值,特别是与城市群、疫情等重要话题结合起来,发表了很多核心期刊: 迁徙数据(1) 高德地图人口迁徙数据:2020年前6个月的400多万条数据,数据为日数据,…

【迁移学习】分布差异的度量以及迁移学习的统一表征方法

在文本分类中,由于文本数据有其领域特殊性,因此,在一个领域上训练的分类器,不能直接拿来作用到另一个领域上,这就需要用到迁移学习。 迁移学习是机器学习中重要的研究领域,ICML、NIPS、AAAI、ICIR等国际人工…

手把手实操系列|贷后迁徙率模型开发(上篇)

序言: 很多关注番茄风控的老铁们都知道,番茄风控的开篇就是从系统性的贷后评分卡开始的,关于贷后相关的内容,番茄不敢说是元老级别的公众号,但再怎么说也是先行者,之前的文章比如这些经典内容,您…

手把手系列|贷后评分(C)卡模型开发实操(全)

序言: 随着风控精细化的管理,番茄风控也就将现有的内容进一步迭代,更新贷后迁徙率模型的内容,同时也综合了星球社区中同学的一些新需求,给大家梳理了贷后迁徙率模型的文章。 希望对所有的风控人员在贷后相关的模型开发…

催收评分卡(三)迁徙率模型

关注公众号“ 番茄风控大数据”,获取更多数据分析与风控大数据的实用干货。 本文主要介绍迁徙率模型和还款率模型,至于失联模型,其实也不难做,难点是在于每家公司对失联客户的定义,主要是需要把多长失时间内失联的客户…

风险资产常用指标

目录 1.放款本金与本金余额 2.迁徙率 3.Vintage 4.不良率 5.损失率 6.回收率 7.入催率 8.首逾率 1.放款本金与本金余额 放款本金为每个月的放贷金额,本金余额为截止统计时点,所有未收回的本金金额,包括逾期未还本金与未到还款期限的待还本金…

前端数据分页——table表数据分页方法(1)

我们在页面展示一个table表格的时候,当数据量较大时,常常会考虑到数据分页的问题,数据分页一般有三种方式,分别是前端数据分页,后端数据分页,数据库分页。 前端数据分页:是把所有数据加载到前端…