小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
一、前言
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,然后运行程序点击输入框即可开始消息轰炸。