一個簡易的自動搶購腳本

兩年前的中秋節(jié)丈探,阿里巴巴四個程序員編寫了段網頁腳本层亿,搶了公司一百多盒月餅而慘遭辭退桦卒。有人說阿里小題大做,有人說誠信第一匿又,那時我在想他們是如何做到的呢方灾?上個月,二組群里討論Python編程碌更,我忽然想起了搶月餅事件裕偿。問了一圈群里沒人做過,董書云戰(zhàn)友鼓勵我:想做就去學痛单,一定可以學會的嘿棘。一拖再拖,這周終于開啟了學習旭绒。

搜索發(fā)現(xiàn)網絡上已經有不少解決方法鸟妙,但思路基本一致:利用瀏覽器插件實現(xiàn)代碼注入。瀏覽器編程語言為JavaScript(JS)挥吵,與我熟悉的C語言相差挺大重父,在Kindle下載了三本相關的書,快速了解了JS的基本規(guī)則忽匈。按照網絡教程房午,學會了谷歌(Chrome)瀏覽器簡單擴展程序的開發(fā)。這樣就掌握了編寫自動搶購腳本的最少必要知識脉幢。然后歪沃,最好的辦法就是行動起來,去做嫌松,去犯錯吧沪曙。

我這次要寫的這個腳本其實很簡單,就是讓程序自動點擊搶購頁面上的按鈕萎羔,開發(fā)步驟如下液走。

1.設置一個搶購頁面

第一步是做一個搶購頁面,供腳本使用贾陷。代碼如下圖所示缘眶,將其保存為html文件。


搶購頁面html代碼

頁面顯示十分簡陋髓废,最重要的是設置的“點我搶購”按鈕巷懈。


搶購頁面

正常情況下,用戶通過點擊按鈕參與到購買活動慌洪,拼的是手速顶燕。很多時候凑保,我們并不知道也許自己競爭的對手是機器。利用腳本在滿足條件的一瞬間(到預定時間等)迅速出擊涌攻,制造出秒殺欧引、秒光的場景。

2.寫一個自動觸發(fā)程序

開發(fā)一個簡單的谷歌瀏覽器擴展程序恳谎,配置如下圖所示芝此,將其保存為manifest.json文件。


谷歌瀏覽器擴展程序配置

最核心的部分是編寫與其配套的JS文件因痛,但代碼十分簡單:

setInterval(function(){document.getElementById("rush").click()}, 1000)

作用是開啟一個定時1秒的定時器婚苹,在定時到的時候就點擊網頁上Id為"rush"的按鈕,也就是1秒自動點一次搶購按鈕鸵膏。在準備好這兩個文件后租副,打開Chrome,在菜單欄找到擴展程序選項较性,點擊進入擴展程序管理界面,選擇存放這兩個文件的文件夾结胀,即可添加剛開發(fā)的擴展程序赞咙。

打開html文件,不做任何操作糟港,瀏覽器就會彈出搶購成功的提示攀操,也就是腳本已經順利運轉,幫我自動完成了搶購秸抚。


搶購成功了

3.場景擴展

為了測試這個腳本對真實網頁的效果速和,隨便打開了瀏覽器收藏夾中的一個網址,瞄準了該頁面上的“搜索”按鈕剥汤,目標是通過腳本自動實現(xiàn)對該按鈕的點擊颠放。通過查看網頁源代碼找到了該按鈕的Id,修改相應的腳本代碼吭敢。重新添加擴展程序碰凶,刷新網頁,預想的情況發(fā)生了鹿驼,“搜索”按鈕被點擊欲低,打開了一個搜索頁面。意想不到的事情也發(fā)生了畜晰,自動打開的頁面越來越多砾莱,甚至來不及關閉原網頁,不得已只得關閉整個瀏覽器凄鼻。


充分證明了一句話:不作死就不會死

這個腳本初步實現(xiàn)了自動搶購的功能腊瑟,為了能夠滿足實際應用聚假,還需要根據(jù)具體情況進行改進,比如監(jiān)測到按鈕的狀態(tài)從不可用到可用時發(fā)起點擊扫步,或者在預定時間點發(fā)起點擊魔策,或者自動填寫網頁的表格等。

說實話河胎,這個小腳本對于互聯(lián)網開發(fā)者根本不值一提闯袒,但對于只與盒子打交道的嵌入式程序員來說,卻仿佛看到了代碼世界的另一個維度游岳。區(qū)塊鏈開發(fā)者嘲笑互聯(lián)網開發(fā)者為古典程序員政敢,這么說我肯定算是一個遠古程序員了。遠古不可怕胚迫,但如果不懂進化喷户,或許想離滅亡就不久遠了。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末访锻,一起剝皮案震驚了整個濱河市褪尝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌期犬,老刑警劉巖河哑,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異龟虎,居然都是意外死亡璃谨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門鲤妥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來佳吞,“玉大人,你說我怎么就攤上這事棉安〉装猓” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵垂券,是天一觀的道長花盐。 經常有香客問我,道長菇爪,這世上最難降的妖魔是什么算芯? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮凳宙,結果婚禮上熙揍,老公的妹妹穿的比我還像新娘。我一直安慰自己氏涩,他們只是感情好届囚,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布有梆。 她就那樣靜靜地躺著,像睡著了一般意系。 火紅的嫁衣襯著肌膚如雪泥耀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天蛔添,我揣著相機與錄音痰催,去河邊找鬼。 笑死迎瞧,一個胖子當著我的面吹牛夸溶,可吹牛的內容都是我干的。 我是一名探鬼主播凶硅,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼缝裁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了足绅?” 一聲冷哼從身側響起捷绑,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氢妈,沒想到半個月后胎食,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡允懂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了衩匣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蕾总。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖琅捏,靈堂內的尸體忽然破棺而出生百,到底是詐尸還是另有隱情,我是刑警寧澤柄延,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布蚀浆,位于F島的核電站,受9級特大地震影響搜吧,放射性物質發(fā)生泄漏市俊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一滤奈、第九天 我趴在偏房一處隱蔽的房頂上張望摆昧。 院中可真熱鬧,春花似錦蜒程、人聲如沸绅你。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忌锯。三九已至伪嫁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間偶垮,已是汗流浹背张咳。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留针史,地道東北人晶伦。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像啄枕,于是被迫代替她去往敵國和親婚陪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容