Max的FamiTicket搶票機器人

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

2019-04-04 改版內容:針對未開賣的場次,自動刷新網頁到可以開賣,然後自動搶票。請參考影片:
https://www.youtube.com/watch?v=LE6uRsX2zcA


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 來修改設定檔,執行畫面如下:

說明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:這程式可確保會搶到票嗎?
A:不會。

Q:MAX搶票程式該如何取得?
A:匯錢給我,即可取得。也可以參考看看實作方法自行挑戰看看。
※匯錢前,請先了解並同意「MAX搶票程式的取得,不包含後續維護和更新」,如不同意請勿匯錢,以免產生不必要之糾紛及損害。

Q:那下載程式後要怎麼操作,有教學嗎?不然怎麼使用?
A:有網頁說明和Youtube 影片。

Q:操做的問題都可請問您嗎?
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:關鍵字可以輸入「中英數」?
A:可以輸入中文/英文/符號和數字。

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:我想要搶鄧紫棋演唱會 “特一區”+”第1排11號.12號”那我能用你的程式去搶票嗎?(手動的一定會被淘汰.因為速度太慢.對吧)
A:不一定,要看運氣,理論上來說,使用程式去搶到票的機率可能只有高一點點而。參考下一個問題。第1排11號.12號,是手動選位,通常熱門的活動,都沒有開放手動選位,意思是,可以手動選位的活動,其實用不到搶票程式。

Q:我如果有指定要哪區域的第幾排的位子 是不是要手動選擇?
A:通常,可以自己挑位子的活動,不需要使用到搶票的程式,熱門活動都是電腦劃位。

Q:我是不是付費給你.你幫忙寫1個程式.進入自動挑選(特一區.第一排)這可行嗎?
A:不是,因為熱門活動,沒辦法選位。而且使用搶票程式也不一定能買到票。

Q:在購票的畫面,程式沒有自動跑,需要自己手動點,但是等到第二回,程式又可以自動跑,為什麼?
A:這估情況是可能發生的,目前程式需要網頁完全載入(loaded),在這情況下程式因為網頁元件都初始化完成了,程式腳本跑起來問題才會比較少,有些情況會造成購票的畫面已經都顯示出來了,但網頁有些圖片可能因為您被分流到的伺服器比較忙碌,有些圖片或元素還沒被下載完成,造成網頁的狀態還是「下載中」。針對這個可能的突發情況,建議您:

  • 搶票前:請先登入會員帳號,並先試買其他的活動,並取消,然後再回到準備要搶的活動頁面去重新整理頁面。
  • 搶票中:所以如果程式沒有自動跑的時候,請趕快自己手動去點。

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

Q:為什麼會卡在立即訂購的頁面5~6秒才跳進去選購頁面呢?是程式卡住了嗎?
A:有些情況下,手動是可能比機器人腳本快。參考上面的解答。遇到這個情況,請挑戰自行手動去搶票。

Q:它為什麼會自己選擇2張+會自己打勾?
A:因為有寫程式去自動輸入和打勾。參考實作原理:
http://stackoverflow.max-everyday.com/2018/03/selenium-chrome-webdriver/

Q:它為什麼驗證碼的框框點一下,讓鍵盤可以直接輸入。(我試過不會ㄚ)
A:因為有寫程式去點一下驗證碼的輸入框。參考實作原理:
http://stackoverflow.max-everyday.com/2018/03/selenium-chrome-webdriver/

Q:當我設定想購買的日期價格和數量,執行程式後我還需要手動做什麼嗎?
A:除了目前程式所提供的功能,其他都需要自己手動操作。

Q:付款的信用卡資訊是否輸要手動輸入?
A:除了目前程式所提供的功能,其他都需要自己手動操作。

Q:如果設定想購買的門票種類售罄,程式會自動輸換其他日期或價格嗎? 還是會停留在網頁待使用者自行再選。
A:會停留在網頁待使用者自行再選。


相關文章:

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

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

Max的城市售票網搶票機器人
http://max-everyday.com/2019/02/urbtix-bot/

Max的cityline搶票機器人
http://max-everyday.com/2019/03/cityline-bot/

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

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

Max搶票機器人Facebook:
https://www.facebook.com/maxbot.ticket/

Facebook網友回應

2 comments

  1. MAX老師 您好:
    意外看到看您這篇文章,深感敬佩。
    想與您洽詢,
    如果欲使用您的程式和使用教學的學費金額?
    再請您撥冗回覆至E-MAIL信箱,
    謝謝您。

    1. hello JIE 你好, 我不是老師,只是小嘍嘍。我沒有提供「使用教學」,只有這個網頁和Youtube影片。請參考看看這篇文章的「常見問答」謝謝。

寫留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *