一、前言
QQ是我们常用的聊天软件,有时候我们在和别人发生争执的时候往往要长时间发很多话,这个时候我们就可以用Python实现一个简单的消息轰炸工具,解放双手。
二、实现原理
消息轰炸的实现非常简单,无非就是一直输入文字然后按回车键。因此我们只需要能控制键盘就能实现消息轰炸。另外,无论是微信还是其它聊天软件,实现起来也都是一样的。
三、pynput模块
在Python中有许多控制鼠标、键盘的方式,今天我们使用一个简单好用的模块。就是pynput模块,里面封装了键盘鼠标的操作,使用起来非常简答。下面我们详细看看。
1、安装模块
安装模块只需要执行下面的语句:
pip install pynput 复制代码
安装完成后,我们就可以导入模块。导入方式如下:
from pynput import keyboard, mouse 复制代码
这里我们导入了两个字模块,分别用来操作键盘和鼠标。今天我们只会用到键盘的操作。
2、键盘输入
我们实现消息轰炸首先需要输入内容,输入的操作非常简单。大概流程如下:
- 创建键盘控制器
- 输入内容 代码如下:
from pynput import keyboard # 创建键盘控制器 kb = keyboard.Controller() # 输入内容 kb.type(“测试”) 复制代码
我们创建键盘控制器对象后,调用type方法传入需要输入的内容即可实现打字。
3、按下键盘
除了上面直接输入文本,我们还可以点击指定按钮具体操作如下:
from pynput import keyboard kb = keyboard.Controller() # 按下a键 kb.press(“a”) # 松开a键 kb.release(“a”) 复制代码
这里需要注意,我们需要分别调用press
和release
两个方法才能实现一次完成的按钮点击。分别表示按下按钮和松开按钮。下面我们就可以实现消息轰炸了。
四、消息轰炸
消息轰炸就是不停的输入内容,然后点击enter
。因此我们需要使用循环操作,另外在输入前我们还需要获取输入窗口的焦点,因此还要留一些时间让我们手动点击输入框,代码如下:
import time from pynput import, Key keyboard # 轰炸时间间隔 span = 1 kb = keyboard.Controller() time.sleep(3) while True: kb.type(“test”) kb.press(Key.enter) kb.release(Key.enter) time.sleep(span) 复制代码
这里我们点击按钮的内容传入了Key.enter
这里表示按enter键的意思。我们还可以改进一下:
import time import random from pynput import, Key keyboard span = 1 sentences = [ “骂人的话1”, “骂人的话2”, “骂人的话3”, “骂人的话4”, ] kb = keyboard.Controller() time.sleep(3) while flag: # 随机打字 num = random.randint(1, len(sentences)) kb.type(sentences[num]) kb.press(Key.enter) kb.release(Key.enter) time.sleep(span) 复制代码
上面我们就添加了随机打出句子的效果。我们只需要打开QQ,然后运行程序点击输入框即可开始消息轰炸。