只需幾行代碼!這個(gè) Python 庫輕松實(shí)現(xiàn)了當(dāng)年的QQ轟炸機(jī)!
本文轉(zhuǎn)載自公眾號(hào)「Python進(jìn)擊者」,詳情可以掃描下方二維碼,關(guān)注該公眾號(hào),獲取更多好文推薦。
前言
記得高中那會(huì)各類QQ轟炸機(jī)、短信轟炸機(jī)遍布網(wǎng)絡(luò),當(dāng)時(shí)由于技術(shù)比較菜,不太懂如何制作的,只知道如何使用。最近我看到一個(gè)Python庫,非常有意思,可以操作鍵盤和鼠標(biāo),就來分享給大家。我會(huì)帶大家實(shí)現(xiàn)一下簡(jiǎn)易粗糙版的QQ轟炸機(jī)功能。這個(gè)庫當(dāng)然也是可以運(yùn)用到一些其他的地方,當(dāng)你有需要操作鍵盤或者鼠標(biāo)需求時(shí),你就應(yīng)該想到這個(gè)庫。

pynput
首先,我們還是來安裝這個(gè)庫:
pip?install?pynout
因?yàn)閣in版本的QQ和mac版本的QQ有一點(diǎn)差別,mac版本是只能通過按回車鍵來發(fā)送消息,而win版本的QQ回車或者點(diǎn)擊發(fā)送按鈕都可以發(fā)送消息。這里我會(huì)把兩種方式給大家。
首先我們需要導(dǎo)入pynput庫以及time庫
from?pynput.mouse?import?Button,?Controller
from?pynput.keyboard?import?Key,?Controller
import?time
我們首先需要控制鍵盤,來幫我們輸入一些我們想要的信息:
def?input(content):
????#?導(dǎo)入相應(yīng)的庫
????keyboard?=?Controller()??#?開始控制鍵盤
????keyboard.type(content)??#?content
????#?回車鍵,發(fā)送消息。點(diǎn)擊和回車只能選一種,防止發(fā)生錯(cuò)誤
????keyboard.press(Key.enter)
如果我們需要點(diǎn)擊功能,我們也加上點(diǎn)擊功能
#?如果是win系統(tǒng),可以選擇使用點(diǎn)擊功能,并且運(yùn)行代碼后將鼠標(biāo)放在發(fā)送按鈕上!
def?click():??#?點(diǎn)擊發(fā)送消息
????#?導(dǎo)入相應(yīng)的庫
????mouse?=?Controller()??#?開始控制鼠標(biāo)
????mouse.press(Button.left)??#?按住鼠標(biāo)左鍵
????mouse.release(Button.left)??#?放開鼠標(biāo)左鍵
其實(shí)發(fā)送消息的步驟最多也就這兩個(gè),甚至可以省略點(diǎn)擊。
#?number表示你要發(fā)多少條信息,content表示發(fā)送的內(nèi)容
def?main(number,?content):
??#?此時(shí)暫停5s,方便你打開聊天窗,并把鼠標(biāo)停放在發(fā)送按鈕上
??time.sleep(5)
??for?i?in?range(number):??#?用循環(huán)來控制你發(fā)送多少條消息
??????input(content+str(i))
??????#?通過點(diǎn)擊按鈕來發(fā)送
??????#?click()
??????#?間隔時(shí)間
??????time.sleep(0.6)
最后,我們調(diào)用以上方法即可,下面給出完整代碼:
from?pynput.mouse?import?Button,?Controller
from?pynput.keyboard?import?Key,?Controller
import?time
def?input(content):
????#?導(dǎo)入相應(yīng)的庫
????keyboard?=?Controller()??#?開始控制鍵盤
????keyboard.type(content)??#?content
????#?回車鍵,發(fā)送消息。點(diǎn)擊和回車只能選一種,防止發(fā)生錯(cuò)誤
????keyboard.press(Key.enter)
#?如果是win系統(tǒng),可以選擇使用點(diǎn)擊功能,并且運(yùn)行代碼后將鼠標(biāo)放在發(fā)送按鈕上!
def?click():??#?點(diǎn)擊發(fā)送消息
????#?導(dǎo)入相應(yīng)的庫
????mouse?=?Controller()??#?開始控制鼠標(biāo)
????mouse.press(Button.left)??#?按住鼠標(biāo)左鍵
????mouse.release(Button.left)??#?放開鼠標(biāo)左鍵
#?number表示你要發(fā)多少條信息,content表示發(fā)送的內(nèi)容
def?main(number,?content):
????#?此時(shí)暫停5s,方便你打開聊天窗,并把鼠標(biāo)停放在發(fā)送按鈕上
????time.sleep(5)
????for?i?in?range(number):??#?用循環(huán)來控制你發(fā)送多少條消息
????????input(content+str(i))
????????#?通過點(diǎn)擊按鈕來發(fā)送
????????#?click()
????????#?間隔時(shí)間
????????time.sleep(0.6)
if?__name__?==?'__main__':
????main(100,?"我是kuls,歡迎關(guān)注Python進(jìn)擊者?。?!")
可能大家會(huì)想到QQ轟炸機(jī)每次發(fā)送的都是不同的話,你這里只有一句?當(dāng)然,你可以去搜此類句庫,然后每一次隨機(jī)抽取一句出來發(fā)送,不就OK了嗎。如果你真的很想做出個(gè)成品,你還可以打包成exe來運(yùn)行。思路給大家,實(shí)踐就靠自己啦!
最后,來看下我們實(shí)現(xiàn)的效果吧!

總結(jié)
這篇文章就到這了,大家多多在看,我會(huì)分享更多Python有趣的第三方庫給大家!
推薦閱讀
我用 Python 分析了一波熱賣年貨,原來大家都在買這些東西?
利用 Python 分析了某化妝品企業(yè)的銷售情況,我得出的結(jié)論是?
情人節(jié),不懂送女朋友什么牌子的口紅?沒關(guān)系!Python 數(shù)據(jù)分析告訴你。
利用 Python 爬取了 13966 條運(yùn)維招聘信息,我得出了哪些結(jié)論?
利用 Python 爬取了 37483 條上海二手房信息,我得出的結(jié)論是?

