Top

2018年6月7日 星期四

[JavaScript] 程式員在處理網路搶訂票這事跟一般人很不一樣

  之前有朋友問在下都怎麼搶網路訂票的 ...
  以下就是當時大概的對話情境。


在下:阿就設鬧鐘,開始時間前一分鐘就坐在電腦前開好入口網頁 Standby 呀!
朋友:然後呢?時間到自己用手速搶?
在下:嗯嗯 ...
朋友:咦!?你以前不是會用 "按鍵精靈" 之類的自動軟體輔助?
在下:阿就後來大家都用機器人驗證,那些自動軟體都會卡關,現在最多是用 Chrome 瀏覽器內建的自動帶入了
朋友:喔? 我聽過那個,不就是要先輸入過一次之後會有紀錄,然後就可以點兩下自動填入
   不過,我覺得那個不怎麼好用 ...
在下:那個就先點擊 Chrome 右上角的 "點點點" 打開設定頁面


在下:然後再展開進階選項


在下:接著再選 "自動填入設定"


在下:最後把你常用的資訊都填好,到時在網頁上點擊輸入框自動就會有這些資料的自動填入選項跑出來啦~


在下:就像這樣!

自動填入範例

朋友:等等!我沒有要問你怎麼用自動填入功能阿  囧
在下:剛剛不是說 " (知道) 怎麼  " 嗎?
朋友:喂!不要隨便斷章取義自己腦補好嗎!
   不過你這個方式在不是地址、郵件、信用卡的欄位怎麼辦? 另外這些隱私資訊存在瀏覽器好嗎?
在下:那種就沒法,用起來是會有點疙瘩,不過搶完再刪掉就好了
朋友:倒不如用程式員的方式,寫程式搶票!
在下:蛤? 這不是殺雞用牛刀嗎? 難不成你要先解析表單網址,用程式直接打網址輸入,這太麻煩了!
朋友:嘖嘖嘖,才不需要那麼費力,你會 Java Script 吧?
在下:會是會,等等,你要用瀏覽器的 Console 介面執行 Java Script 腳本來輸入?
朋友:對阿!就是你想的那樣
   你只要先把對應的 input 輸入框找出來,有 name 就用 name,有 id 更好,若該網頁不支援 jquery 的話就麻煩點用 document.getElementsByName 或 document.getElementById
   然後把 value 塞進去,有 check box 的話就用 click() 去執行,就像這樣:

JS自動填入

朋友:哈哈,而且只要在 console 輸入過就可以按 " ↑ " 來重複輸入,這樣是不是比那個陽春到不行的 Chrome 自動填入好用到嫑嫑的



在下:這倒是真的沒想到,不過要是網頁是時間到才開放給人進去的,沒辦法這樣先搞定 JS 腳本吧?
朋友:那種就真的滿麻煩的,只能先手動第一次,然後把填資料的網頁抓回家慢慢研究囉!
朋友:你可以這樣抓網頁到本機端慢慢研究,哈哈


  以上的小劇場就是程式員處理網路搶票的做法,當然還有更高段,更厲害的自動軟件處理方法,不過這邊就只介紹最簡單的JS腳本處理法。
  底下別丟網址給在下要在下幫你寫網頁自動填入的JS腳本喔!
  這邊關於這類"伸手牌"的問題一律不回答!😤 問點有程式員底子的問題OK?

沒有留言:

張貼留言