用Python来实现对所有QQ好友群发消息

您所在的位置:网站首页 自动发qq消息的脚本是什么 用Python来实现对所有QQ好友群发消息

用Python来实现对所有QQ好友群发消息

2023-03-12 00:09| 来源: 网络整理| 查看: 265

一、介绍

QQBot 是一个用 python 实现的、基于腾讯 SmartQQ 协议的简单 QQ 机器人,可运行在 Linux 和 Windows 平台下,所有代码均集成在一个 qqbot.py 文件中,代码量仅 400 多行(不包括注释)。程序采用单线程的方式运行,且尽可能的减少了网络和登录错误(特别是所谓的 103 error )发生的概率。

你可以用 QQBot 来实现:

监控、收集 QQ 消息

自动消息推送

聊天机器人

通过 QQ 远程控制电脑、智能家电

二.安装方法

可用 pip 安装,安装命令:

$ pip install qqbot

也可以直接下载qqbot.py运行,但需先安装requests库。

安装qqbot-CMD窗口 1. 启动 QQBot

在命令行输入:qqbot,或直接运行qqbot.py:python qqbot.py。启动过程中会自动弹出二维码图片(Linux下需安装有 gvfs ,否则需要手动打开图片),需要用手机 QQ 客户端扫码并授权登录。启动成功后,会将本次登录信息保存到本地文件中,下次启动时,可以输入:qqbot qq号码,或:python qqbot.py qq号码,先尝试从本地文件中恢复登录信息(不需要手动扫码),只有恢复不成功或登录信息已过期时才会需要手动扫码登录。

我在这里是重新打开的一个窗口,直接输入qqbot 回车 输入qqbot

然后出现二维码图

扫描二维码.png

显示登陆成功

显示成功登录.png

注意,扫完以后,当前的CMD窗口是不可以再操作的了,我们需要重新打开一个窗口。直接输入命令,就可以显示出来了。

常用的操作,我附在这里,大家可以自己尝试一下:

QQBot 启动后,在另一个控制台窗口使用 qq 命令操作 QQBot ,目前提供以下命令:

1) 帮助、停机和重启命令

qq help|stop|restart|fresh-restart

2) 联系人查询、搜索命令

qq list buddy|group|discuss [$cinfo|$clike]

( $cinfo --> $qq|$name|$key=$val )

( $clike --> :like:$qq|:like:$name|$key:like:$name )

qq list group-member|discuss-member $oinfo|$olike [$cinfo|$clike]

( $oinfo --> $oqq|$oname|$okey=$oval )

( $cinfo --> $qq|$name|$key=$val )

( $olike --> :like:$oqq|:like:$oname|$okey:like:$oname )

( $clike --> :like:$qq|:like:$name|$key:like:$name )

3) 联系人更新命令

qq update buddy|group|discuss

qq update group-member|discuss-member $ginfo

4) 消息发送命令

qq send buddy|group|discuss $rinfo $message

5) 群管理命令: 设置/取消管理员 、 设置/删除群名片 、 群成员禁言 以及 踢除群成员

qq group-set-admin $ginfo $minfo1,$minfo2,...

qq group-unset-admin $ginfo $minfo1,$minfo2,...

qq group-set-card $ginfo $minfo1,$minfo2,... card

qq group-unset-card $ginfo $minfo1,$minfo2,...

qq group-shut $ginfo $minfo1,$minfo2,... [t]

qq group-kick $ginfo $minfo1,$minfo2,...

6) 加载/卸载/显示插件

qq plug/unplug myplugin

qq plugins

list 命令提供强大的联系人查询和搜索功能,用法示例如下:

列出所有好友

qq list buddy

列出 QQ 为 123456 的群

qq list group 123456

列出备注名为 jack 的好友

qq list buddy mark=jack

列出 群“456班” 的所有成员

qq list group-member 456班

列出 群“456班” 中名片为 “mike” 的成员

qq list group-member 456班 card=mike

列出 讨论组“XX小组” 中名为 jack 的好友

qq list discuss-member XX小组 jack

其中第三、四个参数如果是 key=val 的格式,则应为 name=xx|nick=xx|mark=xx|card=xx|qq=xx 的格式,如果不是 key=val 的格式,则按以下原则进行处理:若是一串数字,则按 QQ 号进行查询,否则,按名称进行查询。

如果存在重名现象,会列出所有重名的联系人。如:

qq list group 机器人测试

将列出所有名为 “机器人测试” 的群。

如果在 list 命令的第三、四个参数中加入 “:like:” ,则会按部分匹配的模式进行搜索,用法示例如下:

列出名称中含有 “李” 的好友

qq list buddy :like:李

列出 QQ 中含有 “234” 的群

qq list group :like:234

列出备注名中含有 jack 的好友

qq list buddy mark:like:jack

列出 群“456班” 的中名称中含有 “李” 的成员

qq list group-member 456班 :like:李

列出 群“456班” 中名片中含有 “mike” 的成员

qq list group-member 456班 card:like:mike

列出的 讨论组“xx小组” 中名为 jack 的好友

qq list discuss-member :like:小组 jack

从 v2.2.5 版开始, list 命令采用表格的形式输出联系人列表,其输出样式示例如下:

输出样式

为保证表格在终端中的显示效果,建议将终端的输出字体设置为 consolas 、且每行可打印的最大字符数大于 120 。另外需要注意:为保证表格的显示效果,当联系人的名称、名片等属性的长度太长或含有特殊字符时,将对这些属性进行截断或过滤后再输出至终端。

update 命令更新指定的联系人列表,其参数含义和 list 命令相同,如:

更新好友列表

qq update buddy

更新群列表

qq update group

更新 群“456班” 的成员列表

qq update group-member 456班

send 命令中第三个参数和 list 命令中的第三个参数格式一致。要注意,如果有重名现象,会给所有重名的联系人发信息。 另外要注意,第二个参数只能是 buddy/group/discuss ,不能是 group-member/discuss-member 。示例:

给 好友“jack” 发消息 “你好”

qq send buddy jack 你好

给 群“198班” 发消息 “大家好”

qq send group 198班 大家好

给 QQ 为 12345 的好友发消息

qq send buddy 12345 xxx

给讨论组发消息

qq send discuss MyDiscuss hello

可以在消息内容中嵌入“/可爱”等表情关键词来向对方发送表情,详见facemap.py。还可以在消息内容中使用\n,\t这两个转义字符(如: send buddy jack 第一行\n第二行)。

群管理命令中的 $ginfo 和 $minfo 和 list 命令中的第三、四个参数格式一致。例如:

禁止 群“456班” 中的 jack,mike,jim 发言( 2 分钟)

qq group-shut 456班 jack,mike,jm 120

四.实现我们自己的群发信息功能

我们打开Eclipse 编辑环境,这里我用的是Python 3.5的IDLE。创建好项目和PyDev文件以后。我们开始用代码来实现群发

from qqbot import _bot as bot #先导入包 bot.Login(['-q', '37654234']) #这里第二个参数是你自己的QQ号 my_bol = [] #我们先得到好友列表 bol=bot.List('buddy') #用切片复制到新的列表中 my_bol=bol[0:] #遍历好友列表 for my_k in my_bol: if my_k: #向好友发送消息 bot.SendTo(my_k,':Good Morning/早上好!')

效果图如下

群发成功返回的消息 注意如果,你的好友比较多的话,不要都发一样的。可以用一下随机数,提前存储一些句子在列表里,然后用随机数来控制。 到此就结束了,小伙伴们,赶紧试一试吧!!!

注:以上内容有参考互联网大神的帖子,如果没有事先声明,引用了。请私下联系我。 QQ邮箱:[email protected]



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3