最近的阿里程序員利用腳本搶購月餅被開除的事成了大家茶余飯后的談資肉瓦。
其實不懂程序的人會感覺,哇做鹰,寫后臺腳本自動搶購击纬,好厲害啊。
其實寫一個js 的腳本并不難钾麸,今天就在這里跟大家分享下最簡單的js腳本怎么寫然后植入網(wǎng)頁更振。
首先,先模擬一個搶購頁面的網(wǎng)頁饭尝,預設默認的時候有一個搶購按鈕肯腕,但是是disabled,也就是不可點擊狀態(tài)钥平。
5秒鐘之后會變成可點擊狀態(tài)实撒,并且變成高亮。
下面設置一個input來放置 此按鈕被點擊了多少次涉瘾。(在不可點擊狀態(tài)的時候知态,用手點擊按鈕是沒用的,input框沒有變化立叛。)但是變成可點擊狀態(tài)之后负敏,點擊次數(shù)會被顯示。
以上就是仿?lián)屬忢撁娴倪壿嬅厣摺O旅骈_始介紹腳本其做。只要把段腳本復制到瀏覽器的console控制臺(摁F12可以顯示瀏覽器的開發(fā)者工具)里再摁回車就可以執(zhí)行了。頁面也被上傳到服務器上了赁还,大家可以隨意玩耍呦妖泄。
http://yangzhedi.github.io/html/rush.html
其實這個腳本很簡單。原理就是開一個每XXX毫秒的定時器艘策,定時器里執(zhí)行一個按鈕的模擬點擊事件蹈胡。
這里的$ 是默認此頁面引用了jquery,如果以后搶購的頁面沒有引用jq的話,用原生的也是沒問題的审残,只要把jq的封裝函數(shù)API復制過來就行了梭域。
setInterval 就是 設置一個定時器斑举,后面的1000 是毫秒數(shù)搅轿,代表著每1000毫秒,執(zhí)行一次定時器里的函數(shù)富玷。
而$("#rush")就是獲取一下?lián)屬彴粹o的DOM節(jié)點璧坟,trigger() 方法觸發(fā)被選元素的指定事件類型。
意義就是獲取到搶購按鈕赎懦,然后觸發(fā)它的點擊事件雀鹃。
接下來是重點,如果励两,頁面可以在本頁面跳轉(zhuǎn)黎茎,那么如果搶購button消失了,腳本找不到那個button的DOM節(jié)點当悔,自然而然也沒用了傅瞻,但是如果頁面不跳轉(zhuǎn) 或者button還在,那么腳本就會一直執(zhí)行盲憎。
正常的搶購頁面嗅骄,你搶購成功的話(跳過驗證碼,需要圖像識別技術(shù)blabla)會跳轉(zhuǎn)到付款頁面饼疙。
但是如果請求堵塞溺森,或者網(wǎng)站性能不好,崩掉了的話窑眯,就有可能不發(fā)生跳轉(zhuǎn)(內(nèi)網(wǎng)的搶購頁面肯定不會寫成淘寶天貓的那種高并發(fā)的了)這可能也就是為什么阿里的同學一下子不小心搶了那么多月餅的原因屏积。(個人觀點,不喜勿噴磅甩,歡迎私信討論)