Max的拓元搶票機器人

2018-12-17更新,可以指定日期和區域,新的版本在 settings.exe 裡增加 “Run” 的按鈕,按下後 就會去”存檔” 和 “執行” chrome_tixcraft.exe,設定界面增加 “mode”: 自動點選的排序方式,”from_top_to_down” 是由上往下找,”from_down_to_top” 是由下往上找:
https://www.youtube.com/watch?v=2sUMfNGd4jk

說明:這影片是設定值是「日期」由上往下點第一筆。「區域」是由下往上點第一筆。


參數設定說明:

附上一個小程式 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個瀏覽器,一個是透過搶票機器人。另一個是傳統無外掛手動去搶票,因為如果遇到搶票的程式掛了或官方網站的改版,還可以搶看看第二輪或清票。


相關影片:

2018-11-23更新,提供可執行檔(點2下執行):
拓元售票系統使用Max自動搶票機器人(2018/11/23)
https://www.youtube.com/watch?v=QX8u2iF1Gm8


2018-10-20 更新:
https://www.youtube.com/watch?v=huU4e9pcQLM


2018-09-28 更新:
https://www.youtube.com/watch?v=VvLm7wxm2lk


2018-02-28 搶安室奈美惠的票,透過純手動人工搶票,一張都沒搶到,也有挑戰搶清票那場,也是都沒搶到 @[email protected];,怒寫了一個web bot(網頁機器人)。


主要功能:

  • 1:會自動按「立即購票」的按鈕。
  • 2:自動選取第1個可以購買的場次(可以參數調整)。
  • 3:自動選取第1個可以購買的區域(可以參數調整)。
  • 4:自動選擇「張數」(目前是會自動選擇 2張,該場次沒有 2張可選會改選 1張)。
  • 5:自動「打勾」會員服務條款
  • 6:把驗證碼的框框點一下,讓鍵盤可以直接輸入。

有了機器人,買票就只剩下要打驗證碼。這個驗證碼,請記得提早去練習

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

我是使用 python + selenium 來實作,除了python 程式語言可以使用 selenium,也可以用 c#, java, ruby, perl。


一開始可以正常執行的程式碼,大約 40幾行 python 的  source code,程式設計原理,如果想看我的程式碼請匯錢給我,謝謝:

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

手動操作:拓元搶票技巧
http://max-everyday.com/2018/02/tixcraft/

關於「場次」和「區域」參數調整的我使用的方法是透過「文字」(關鍵字)去檢查。

在場次的網頁裡,點選的文字都是「立即訂購」,這個要透過「文字」來處理上就比較麻煩一點,需要去取得第一欄位裡文字來判斷。

「場次」和「區域」,用程式去點和人工手動去點差不了多少。選坐位、勾選同意,也不會花掉很多時間,也和人工手動去點差不多,有沒有使用這個機器人去搶票,其實不會差太多。


Q&A 常見問題:

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

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

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

Q:有電腦安裝數的限制嗎?
A:沒有限制,你可以取得並修改我所寫的程式碼。

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

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

1:請先確認您的 chrome 有更新到最新版本。

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


2:請先「解壓縮」你的壓縮檔,不能直接在壓縮檔裡執行。
3:點 2下 chrome_tixcraft.exe


相關新聞:

為什麼這些臉書社團總有熱門演唱會黃牛票?國內工程師因撰寫秒殺訂票程式遭刑事局逮捕
https://www.techbang.com/posts/48849

黃牛集團的行為,不僅造成網路售票公司網路流量異常,且因大量偽冒個資造成該公司與正常用戶之困擾,因此網路售票公司向刑事局提出妨害電腦使用及偽造文書告訴。

自己使用,沒有「妨害電腦使用及偽造文書告訴」這2個問題。

寫python 搶票,除非有證據證明有牟利行為,也無利用系統漏洞。只是利用工具來有效率的完成自己想買的商品。很難用現有法條定罪。


結論:

python 滿神奇的,有空應該要學一下,很實用。

無論你遇見誰,他都是你生命該出現的人,絕非偶然,他一定會教會你一些什麼,無論我們走到哪裡,那都是我該去的地方,經歷一些我該經歷的事,遇見我該遇見的人。每件事的發生必有其原因,也有助於你。

Sometimes you fall down because there is something down there that you are supposed to find.


相關文章:

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

Max的FamiTicket搶票機器人
http://max-everyday.com/2019/01/maxbot-famiticket/

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

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

Facebook網友回應

相關文章

20 comments

    1. 拓元的「驗證問題」,通常需要手動去 copy/paste畫面上指定的文字。理論上程式也可以做到,但由於無法重覆驗證,還是透過滑鼠點2下複製/貼上會快一點。

  1. 你好
    想請問一下,一個人要同時搶兩天的票,第一天搶到票了我可以不先結帳而直接按繼續選購後直接跳到選位的頁面,直接選擇第二天的日期及位置嗎?
    這樣我第一天的票還是保留著嗎?

    1. 理論上針對「熱門的」活動,不是第一時間能搶到票的機率很低。針對你的這個需求,建議你分2個瀏覽器去搶,第一個去搶第一天的並開始出現「轉圈圈」時就可以切到第二個瀏覽器去搶第二天的。

    1. 已重新修改範例2號,不能執行的原因是因為使用了 time.sleep(5) 卻沒有 import time, 解法是刪除 time 相關程式碼即可。

  2. Max大 您好
    雖然文章中未提到,但想請問關於驗證碼自動填入的部分,您是否有比較推薦的實作方向?
    謝謝

    1. 當人們在網站註冊或購物時,經常會出現圖像驗證碼的輸入要求,為了區分「真人」與「機器人」,圖片會出現線條及扭曲分隔開的文字,讓電腦程式的機器人難以辨識,目前Max的搶票機器人沒有辦法處理「驗證碼」的部份,需要人工去輸入,機器人幫忙處理其他的欄位的輸入。

      人外有人,天外有天,驗證碼的部份應該也可以透過程式識別,識別也是有分難度的,簡單的驗證碼可以透過去切割圖片,再把切割好的圖片採用深度學習(Deep learning)的方式去訓練就可以有效提升識別率。難一點的驗證碼就是字元會變形、重疊還有雜訊。拓元網站是屬於中上等級,只有變形和重疊。

      沒有推薦的實作方向,因為我也沒有研究過。

寫留言

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