最近的阿里程序員利用腳本搶購月餅被開除的事成了大家茶余飯后的談資。
其實不懂程序的人會感覺,哇,寫后臺腳本自動搶購,好厲害啊。
其實寫一個js 的腳本并不難,今天就在這里跟大家分享下最簡單的js腳本怎么寫然后植入網頁。
首先,先模擬一個搶購頁面的網頁,預設默認的時候有一個搶購按鈕,但是是disabled,也就是不可點擊狀態(tài)。
5秒鐘之后會變成可點擊狀態(tài),并且變成高亮。
下面設置一個input來放置 此按鈕被點擊了多少次。(在不可點擊狀態(tài)的時候,用手點擊按鈕是沒用的,input框沒有變化。)但是變成可點擊狀態(tài)之后,點擊次數會被顯示。
以上就是仿搶購頁面的邏輯。下面開始介紹腳本。只要把段腳本復制到瀏覽器的console控制臺(摁F12可以顯示瀏覽器的開發(fā)者工具)里再摁回車就可以執(zhí)行了。頁面也被上傳到服務器上了,大家可以隨意玩耍呦。
http://yangzhedi.github.io/html/rush.html
其實這個腳本很簡單。原理就是開一個每XXX毫秒的定時器,定時器里執(zhí)行一個按鈕的模擬點擊事件。
這里的$ 是默認此頁面引用了jquery,如果以后搶購的頁面沒有引用jq的話,用原生的也是沒問題的,只要把jq的封裝函數API復制過來就行了。
setInterval 就是 設置一個定時器,后面的1000 是毫秒數,代表著每1000毫秒,執(zhí)行一次定時器里的函數。
而$("#rush")就是獲取一下搶購按鈕的DOM節(jié)點,trigger() 方法觸發(fā)被選元素的指定事件類型。
意義就是獲取到搶購按鈕,然后觸發(fā)它的點擊事件。
接下來是重點,如果,頁面可以在本頁面跳轉,那么如果搶購button消失了,腳本找不到那個button的DOM節(jié)點,自然而然也沒用了,但是如果頁面不跳轉 或者button還在,那么腳本就會一直執(zhí)行。
正常的搶購頁面,你搶購成功的話(跳過驗證碼,需要圖像識別技術blabla)會跳轉到付款頁面。
但是如果請求堵塞,或者網站性能不好,崩掉了的話,就有可能不發(fā)生跳轉(內網的搶購頁面肯定不會寫成淘寶天貓的那種高并發(fā)的了)這可能也就是為什么阿里的同學一下子不小心搶了那么多月餅的原因。(個人觀點,不喜勿噴,歡迎私信討論)