如何用虛擬主機搶拓元的門票

使用虛擬主機搶票好處很多, 不會遇到太多相同來源IP addres 造成的拓元售票網站的 403 錯誤, 而且網路的反應時間比用台灣的網路還更短, 最有機會買到票的方式, 應該就是用虛擬主機來搶票了。

最佳的解法之一是:租用位於美國東部的虛擬伺服器, 在Linux虛擬主機上安裝遠端桌面, 連進虛擬主機後安裝 chrome 瀏服器, 然後再執行python指令, 就可以在遠端伺服器上搶票。

透過 whois ip, 或 ip location 的服務, 我們可以知道拓元的網頁伺服器目前是在美國的 Ohio(俄亥俄州), 在搶票的連線, 如果與伺服器之間的距離愈短, 通常反應時間會較短, 自然搶到票機率就會更高。

要增加搶到票的機率除了時間更短之外,建議使用真實個人資料多創幾組帳號來搶票,可以有效地提升搶到票的機率。

雖然這篇文章是以虛擬主機來示範,但是在 Windows / macOS / Linux 平台裡的 python 操作方式是類似的,幾乎相同。

文章的目錄


虛擬主機執行MaxBot影片

https://youtu.be/-LUt7Au03ps

影片內容說明:

  • 首先是在其他瀏覽器登入完拓元後, 取得 cookie 的 SID 值,
  • 在虛擬主機的設定介面存入拓元 SID,
    (指令是: python settings.py)
  • 透過指令的方式執行搶票程式.
    (指令是: python chrome_tixcraft.py)

虛擬主機硬體說明:

影片的CPU 數目只有 2 CPU, 所以虛擬伺服器的CPU 選 4 CPU 應該就夠用了, 建議還是選 8 CPU, 反正才差幾塊錢, 買的到票比較重要。

如果你只是 IP 位置被擋, 或希望每次開出來的瀏覽器套用到不同的IP, 參考看看這篇文章:

如何透過Python自行架設代理伺服器 (Proxy Server)
https://stackoverflow.max-everyday.com/2023/11/python-proxy-server/

實際在搶票時的影片:
2023-11-18 五月天 [ 回到那一天 ] 25週年演唱會 搶票心得
https://youtu.be/dmc96JfG3ts

沒注意到刷錯活動, 點到返鄉專車…


虛擬主機比較快,還是自己的電腦?

在MaxBot的執行視窗可以看到目前瀏覽中的網址,在結帳的畫面時,會顯示從挑日期到最後結帳花了多少時間,雖然虛擬主機的CPU較慢,但實測花費時間較短。

以下針對同一時間,同一場次做購票測試,包括轉圈圈所花時間。虛擬主機 4 CPU 的環境,平均在 9.1 秒完成。

2 CPU 的環境,平均在 9.6秒完成。

真心建議在虛擬主機搶票的話,使用 8 CPU 來搶,效果會較好。

在古董的Windows 筆電上測試,如果多試幾次,大約可以保持在 14 秒左右,秒數被拉大的主要原因就是驗證碼遇到太難的,一但猜錯就會多花2秒左右。

古董的Windows 筆電規格:

  • CPU: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz 2.71 GHz
  • RAM: 8 GB

在古董的Windows 筆電上,實測使用 python 原始碼執行搶票的速度比打包的執行檔速度快大約2秒左右,大約可以保持在 12 秒左右。

網友的電腦提供的數字, 大約平均在 8.7 秒完成, 偶爾時候會出現計算錯誤的情況。

花費時間的計算是從選日期的頁面開始計算, 直接彈出有座位的畫面為止,有時候猜錯驗證碼,或伺服器轉圈圈會很久,也都包括在這個花費時間中。

如果要參加拓元的跑步比賽, 建議參賽的電腦最好是可以包含轉圈圈的花費時間在10秒內,買到票的機率會較高。
https://max-everyday.com/2023/11/buy-ticket-by-vm/#vm_vs_pc

可以用這個方式到網咖去測試看看花費時間長短,再決定是要在家裡搶票還是用網咖的電腦。


怎麼測量與售票系統的網頁伺服器之間的距離?

通常選擇與伺服器同一個國家, 效果應該會最好. 實際上只要反應時間愈短就是愈好.

在網路的世界裡, 有一個叫 traceroute 指令, 在 window 裡是下 tracert, 透過這個指令可以知道你目前的網路情況下, 連到伺服器中間經過了那些主機幫你接力的傳送網路封包, 以在台灣地區, 使用台灣之星的網路, 執行畫面如下:

traceroute 簡介:
https://zh.wikipedia.org/zh-tw/Traceroute

使用 digital ocean 在米國紐約市的伺服器, 雖然比不上直接使用 Amazon 虛擬主機, 數據上也很漂亮。

linode 日本連到美國, 雖然比台灣快, 但是還是慢了一些些:

在建立 Linux 的虛擬主機時, 大多建議使用 ubuntu 且有 LTS 的版本, 會遇到的問題較少一點, 不只是 ubuntu 可以用, 我是使用 Rocky Linux, 如何在 Amazon/Microsoft/DigitalOcean/Linode/TWCC 的虛擬主機上安裝遠端桌面, 參考看看:

Linux VM 上安裝桌面環境
https://stackoverflow.max-everyday.com/2023/02/linux-vm-xrdp-desktop/

當然, 除了 Linux 可以選擇之外, 也有 Window 的虛擬光碟可以選擇。

幫虛擬主機開機後, 請幫主機安裝 chrome 瀏覽器, 安裝好後, 再按裝 python 3.10 或 python 3.9 在伺服器裡, 由於我選的 Rocky Linux 8.0 版太古老, 內建的python 是 3.6 , 我另外安裝了 python 3.9 版.


怎麼知道虛擬伺服器的IP 是否被售票平台擋掉?

只要先連進伺服器後, 下 curl + 網址的指令, 就可以知道結果, 例如:

curl https://tixcraft.com

顯示 403 Forbidden 或是 {"response":"block"} 就是被擋掉了.

Q: 我有使用虛擬主機,但 ticketmaster.sg好像封鎖了所有虛擬主機的ip,無論怎麼切換都無法進入網頁,這個有解決方案嗎?
A: 測試用digital ocean 在sg 的虛擬主機, 的確是被封了, 顯示: {"response":"block"}, 使用 linode 虛擬主機結果也是一樣不行.

目前虛擬主機對搶票系統來看, 似乎是知名的就會被封鎖, 目前只能除了常見的這些業者, 才不會被擋掉.

台灣與大陸還是有很多雲端運算 (IaaS)的提供業者, 目前我使用中的台灣的業者並沒被被 ticketmaster.sg 伺服器封鎖.

Q: 如何選擇較佳的虛擬主機?
A: 當然是距離實際售票的主機連線反應時間愈短愈好.

以 ticketmaster.sg 伺服器在美國的加洲(California) 為例子, 雖然官方擋掉部份IP address, 但是這世界上還是有暫時沒被封鎖的虛擬主機, 可以先試看看美國業者提供的虛擬主機, 如果被封鎖, 再慢慢往外找.

Q: 是不是拓元把網站伺服器架在國外比較安全?
A: 並不是, 因為 Amazon 的雲端運算是世界第一品牌, 而且平常時不需要使用到那麼多台的網站伺服器, 就可以只開的夠用的數目做負載平衡(Load Balancing), 等有大型搶票活動, 可以動態地加開伺服器, 不需要平常時就花大錢養機器。

Server Load Balance(伺服器負載平衡),功能在於將企業內多部伺服器的負載量作平衡,將過大流量轉向相同功能的其他伺服器,讓每一部伺服器工作量維持平均,保持服務不因流量過大而變慢或中斷。


租用雲端運算主機的費用

在 Digital Ocean 以 8 intel CPU + 16GB Ram 的主機, 1小時是 0.19 美元 等於 台幣 $6.13元, 滿便宜的, 比去網咖還便宜。

在 Linode, 以 8 intel CPU + 16GB Ram 的主機, 1小時是 0.216 美元 等於 台幣 $6.96元,

華盛頓特區在俄亥俄州的右邊, 實體距離應該也很近。

Amazon 虛擬伺服器定價:
https://aws.amazon.com/ec2/pricing/on-demand/
8 CPU + 16GB RAM, 每小時 $0.2688美金=8.66台幣.

中華電信, 台灣的南部的”運算優化型”的價格:
https://cloud.hinet.net/hicloud/index.html?type=cvpc&section=price

8 CPU, 16GB RAM, 每小時 10.32台幣, 對Linux 不熟悉的, 可以選擇貴一倍的Window, 預算不夠多, 就選 4 CPU 版本, 價格少一半。

Q: 該選中華電信南區還是國外的虛擬主機呢?
A:要選那一台主機都可以,主機選擇,第一步是要先確定有沒有被網頁伺服器封鎖。

如果是要搶拓元家族的話,可以確定Linode/DigitalOcean 的伺服器的IP很多都被擋掉了。

第二步,才是用「網路反應」時間來決定,traceroute 遇到的節點較多的,不一定會比較差,一般的情況下,traceroute 經過的節點數目較少時,反應時間會較短。

第三步,執行瀏覽器主機的選擇,一般的情況下,虛擬主機的網路通常會比家用的網路快,家用的筆電的CPU數及硬體設備會比虛擬主機好。

建議在虛擬主機上,開分身的帳號來自動搶票。


取得 MaxBot 原始碼

安裝好 python 之後, 請下載我的 MaxBot 原始碼:
https://github.com/max32002/tixcraft_bot

可以直接在 github 上下載 zip 檔, 也可以使用 git 指令來 clone(複製) 專案:

git clone https://github.com/max32002/tixcraft_bot.git

有原始碼之後, 需要安裝 python 相依的套件, 請在 Terminal 裡進入 tixcraft_bot 目錄後, 執行以下指令:

python3 -m pip install -r pip-req.txt

我的虛擬主機, 無法直接執行上面的指令, 因為 python3 會使用系統內建的 python 3.6, 所以我是使用指令:

python3.9 -m pip install -r pip-req.txt

說明: 建議把 python3 這個指令的 symbol link 指到你目前習慣使用的 python 版本, 這句話太難, 一般人應該比較難理解, 我是沒去修改.

安裝好之後, 需要再下一行指令:

python -m pip install git+https://github.com/max32002/python-chromedriver-autoinstaller@master

說明: 這裡的 python, 需要手動修改為 python3 或 python3.9 要以你的環境為準.

前置工作都準備好了,


執行 MaxBot

需要使用參數設定可以執行指令:

python setting.py

要執行搶票程式, 如果無法按下”搶票” 按鈕, 請手動執行指令:

python chrome_tixcraft.py

說明: 這裡的 python, 需要手動修改為 python3 或 python3.9 要以你的環境為準.

Q: 售票的主機在國外, 是不是就不適用台灣的《文創法》或《社會秩序維護法》?


其他的售票系統的搶票

都比照這篇文章的解法就可以了, 看是要搶便宜機票, 還是搶PS5, 搶蝦皮優惠券之類, 先找出主機的實體位置, 或是找一台 traceroute 路徑較短的虛擬主機, 在主機上搶票效果就會很好。


相關網頁

台灣:

香港:

韓國:

其他:

Facebook網友回應

您可能也會感興趣的文章...

《自殺突擊隊:集結》(The Suicide Squad)

生活小事

imdb 評份好高哦,在2021-08-07日,已有22K人次評份,滿分10, 有 7.9分! 特效做的好美!拍的很幽默、風趣與唯美。劇情輕快,一不小心就看完了。 ◎譯  […]

Read More

用刮鬍刀除毛球

生活小事

試了一下,真的可以去除毛球,但似乎用除毛球機會更好,因為刮鬍刀滿笨的,是刮刀一層的毛,好處是刮完之後變的好像新的,外面洗不乾淨的髒髒毛都一起刮掉了。我發現不同的毛線產生的 […]

Read More

WAmazing – 在日本國內免費上網

生活小事

好神奇的「WAmazing」免費SIM卡和上網服務,有了這個服務,第1次去日本,應該就不用申請跨國的上網。 遠傳電信日本網路漫遊價格: https://www.fetne […]

Read More

發佈留言

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