只需幾行代碼!這個(gè)python庫(kù)輕松實(shí)現(xiàn)了當(dāng)年的QQ轟炸機(jī)
回復(fù)“書(shū)籍”即可獲贈(zèng)Python從入門(mén)到進(jìn)階共10本電子書(shū)
前言
記得高中那會(huì)各類QQ轟炸機(jī)、短信轟炸機(jī)遍布網(wǎng)絡(luò),當(dāng)時(shí)由于技術(shù)比較菜,不太懂如何制作的,只知道如何使用。最近我看到一個(gè)Python庫(kù),非常有意思,可以操作鍵盤(pán)和鼠標(biāo),就來(lái)分享給大家。我會(huì)帶大家實(shí)現(xiàn)一下簡(jiǎn)易粗糙版的QQ轟炸機(jī)功能。這個(gè)庫(kù)當(dāng)然也是可以運(yùn)用到一些其他的地方,當(dāng)你有需要操作鍵盤(pán)或者鼠標(biāo)需求時(shí),你就應(yīng)該想到這個(gè)庫(kù)。

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

總結(jié)
這篇文章就到這了,大家多多在看,我會(huì)分享更多Python有趣的第三方庫(kù)給大家!
-------------------?End?-------------------
往期精彩文章推薦:
如何利用Scrapy爬蟲(chóng)框架抓取網(wǎng)頁(yè)全部文章信息(中篇)
如何利用Scrapy爬蟲(chóng)框架抓取網(wǎng)頁(yè)全部文章信息(上篇)
關(guān)于Scrapy爬蟲(chóng)框架中meta參數(shù)的使用示例演示(上)
關(guān)于Scrapy爬蟲(chóng)框架中meta參數(shù)的使用示例演示(下)

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
/今日留言主題/
隨便說(shuō)一兩句吧~~
