Max的FamiTicket搶票機器人

我隨手寫了一個FamiTicket網站的搶票機器人,執行畫面:

2019-01-25 改版內容:針對未開賣的場次,不會自動按「我要購票」按鈕。FamiTicket 搶票需要自己手動更新網頁,大約等2秒畫面沒有自動移到下一頁手動按鍵盤的「重新整理」鍵。請參考影片:
https://www.youtube.com/watch?v=yoAw6ZGnM_Y


前一個版本的影片:FamiTicket 搶票機器人 (2019-01-17)
https://www.youtube.com/watch?v=qjceDHqvme8

聽說網友分享關於全家購票系統,可能在搶票開賣時因為同時太多人搶,網路塞車被擠出伺服器,網友建議的解法:在登入帳號後,畫面鎖定在「我要購票」,等時間到就點擊「 我要購票」。


主要功能:

  • 1:「場次 Session」、「區域 Area」、「劃位Seat」自動化。
  • 2:「場次」可以使用關鍵字去自動點選。
  • 3:「區域」可以使用關鍵字或票價去自動點選。
  • 4:「劃位」可以自動輸入想要的張數,張數可以參數調整。

參數設定檔說明:

附上一個小程式 settings.exe 來修改設定檔(settings.json),執行畫面如下:

說明1:「Run」 的按鈕,按下後 就會去”存檔” 和 “執行” chrome_tixcraft.exe
說明2:「Save」按鈕,會把設定值存檔。
說明3:「Exit」按鈕,離開。

參數說明:

  • homepage”: 設定機器人一開始開出那一個網址。
  • browser”: 設定機器人用那一個瀏覽器,目前支援 “firefox” 和 “chrome”
  • ticket_number”: 設定票數
  • date_auto_select”: 設定要不要自動點選「日期」。要停用這個功能請取消勾選。
  • Date select order“: 自動點選的排序方式,”from_top_to_down” 是由上往下找,”from_down_to_top” 是由下往上找。
  • date_keyword”: 日期的關鍵字。如果使用空字串,代表搶第一個「可被點選」的日期。
  • area_auto_select”: 設定要不要自動點選「區域」。要停用這個功能請修改為 false。
  • Area select order“: 自動點選的排序方式,”from_top_to_down” 是由上往下找,”from_down_to_top” 是由下往上找。
  • area_keyword”: 區域的關鍵字。如果使用空字串,代表搶第一個「可被點選」的區域。

搶票的建議:

建議實際在搶票時開啟2個瀏覽器,一個是透過搶票機器人。另一個是傳統無外掛手動去搶票,因為如果遇到搶票的程式掛了或官方網站的改版,還可以搶看看第二輪或清票。


搶票機器人原理:

我是使用 python + selenium 來實作,除了python 程式語言可以使用 selenium,也可以用 c#, java, ruby, perl。參考看看我的心得:

Selenium 使用 Chrome 瀏覽器 webdriver
http://stackoverflow.max-everyday.com/2018/03/selenium-chrome-webdriver/


機器人程式是跨平台的,可以執行在 Linux / Mac OS / Windows 這 3個平台上。上面影片是使用 FireFox,除了使用 FireFox 瀏覽器也可以 Chrome 瀏覽器。


Q&A 常見問答:

Q:MAX搶票程式該如何取得?
A:匯錢給我,即可取得。也可以參考看看實作方法自行挑戰看看。

Q:操做的問題都可請問您嗎?
A:可以。請先參考看看教學的文章。

Q:購買程式以後,是否執行上有問題都能請教您呢?
A:可以。請先參考看看教學的文章。

Q:所有購票系統都可以執行嗎?
A:沒有這麼神奇哦,只有特定的網站,而且網站一改版可能就無法使用。

Q:可以用永久嗎?
A:如果官方網站沒改版的話,可以一直使用。

Q:你都會一直更新嗎?
A:不一定會更新。

Q:若購買程式後,您有新功能或改版,能無限更新嗎?
A:沒有,因為不確定有沒有辦法更新,也許賣票的平台請到更厲害的工程師。

Q:若是遇到售票網頁改版,後續執行檔程式碼的更新是要重新購買,還是有其他的更新方式?
A:不確定有沒有辦法更新,也許賣票的平台請到更厲害的工程師。

Q:請問搶票程式不會被售票網擋下來嗎?
A:理論上擋的下來,目前還沒有擋,未來很難說。

Q:有包含之後維護嗎?
A:沒有。

Q:有電腦安裝數的限制嗎? (多台電腦OK?)
A:沒有限制。
附註:你可以取得並修改我所寫的程式碼,但是要讓Python程式碼可以執行,有前置條件,需要(1)安裝python,(2)安裝 pip, (3)安裝 selenium 套件,(4)下載 webdriver(或ChromeDriver) 到程式碼的資料夾下。

Q:只能用電腦嗎還是手機也可以?
A:只限電腦,並限定於 Windows/MacOS/Linux 平台。

Q:請問會包含使用說明嗎?
A:請參考看看網頁上附的資料,如果還有不懂的地方請與我聯絡,我會再補充和更新到網頁裡。

Q:想請問能否幫忙搶票?
A:沒有提供代搶票的服務,因為沒搶到票,不好意思跟你拿錢。萬一跟你拿了錢又沒搶到票,可能被說是我偷懶沒做事還收錢。

Q:可以直接幫我搶票嗎?
A:沒有提供代搶票的服務,因為沒搶到票,不好意思跟你拿錢。萬一跟你拿了錢又沒搶到票,可能被說是我偷懶沒做事還收錢。

Q:我想指定第二場 要如何設定?
A:先看官方給的PDF或網頁, 裡面會有該「場次」的關鍵字,如果是一天一場,請輸入日期的關鍵字即可。如果是一天多場,請輸入想搶的場次才有出現的關鍵字。如果不知道怎麼設,日期這個請設為不要透過機器人來幫忙自動選取,手動選場次不會相差太多時間,但建議還是透過程式自動選場次,因為比別人點的快,搶到票的機率就會比別人高。

Q:只求有票,怎麼設定比較好?
A:我也不清楚,我猜測也許關鍵字使用低票價的再使用隨機(random)方式選取,機率會高一點。

Q:我一直掛在購買票那邊,時間到會自己進去吧。
A:要自己按重新整理。

Q:沒辦法 點2下執行檔就跑
A:

1:請先確定電腦裡有安裝 chrome 瀏覽器。
2:請先確認您的 chrome 有更新到最新版本。

太舊的 chrome 執行起來會有問題,請先更新chrome瀏覽器為最近的版本,更新方式為:「設定」->「關於Chrome」。


3:請先「解壓縮」你的壓縮檔,不能直接在壓縮檔裡執行。
4:點 2下 chrome_tixcraft.exe 即可開啟chrome 瀏覽器開始買票,也可以開啟 settings.exe 先進行設定後,再按 Run 也可以。

macOS 的用戶請改點 MaxBot app .

Q:請問按下run能控制多個視窗?
A:每一個按下Run跑出來的視窗都是獨立的,需要一一去登入。

Q:run按幾次就跑出幾個視窗,是否只會執行最新出來的視窗?
A:每一個按下Run跑出來的視窗都是獨立的,每一個都會跑,每一個執行中的視窗可以使用不一樣的設定值。

Q:那如果我有兩個帳號可以買票,有辦法在同一台電腦run嗎?
A:可以。但實際上沒有辦法,因為拓元還有KKtix針對熱門的活動幾乎都會提問額外的問題,同一台電腦「作用中的視窗」都只有一個,所以沒有辦法「同時」去買票,只能依序買票,就是帳號1號買完,點帳號2號的視窗改用帳號2號來買,但熱門活動,錯過了第一時間搶票,買到票的機率很低。

Q:使用機器人腳本自動輸入欄位有機會會搶輸手動的嗎?
A:有些情況下,手動是可能比機器人腳本快。機器人腳本的原理是透過程式預先針對判斷網頁已出現的元素(element)來決定要自動操作網頁的項目是什麼,目前程式需要網頁完全載入(loaded),在這情況下程式因為網頁元件都初始化完成了,程式腳本跑起來問題才會比較少,缺點就是慢了一到二秒,另一方面在程式腳本在自動選票數、打勾同意和對焦到驗證碼的輸入框會比手動快,所以使用機器人和用手動搶票不會差太多,結論:當網頁完整載入速度比較慢的這個情況之下,機器人自動化腳本和手動搶票不會差很多,也有可能會搶輸手動;如果網頁載入速度快或一般的情況下,使用機器人腳本自動填值在理論上會比手動搶票快一到二秒。


相關文章:

Max的拓元搶票機器人
http://max-everyday.com/2018/03/tixcraft-bot/

Max的KKTIX搶票機器人
http://max-everyday.com/2018/12/kktix-bot/

Max自動掛號機器人
http://max-everyday.com/2018/08/max-auto-reg-bot/

Max 學習 selenium
http://stackoverflow.max-everyday.com/tag/selenium/

Facebook網友回應

寫留言

你的電子郵件位址並不會被公開。 必要欄位標記為 *