化實(shí)操:三步從環(huán)境搭好到訂單提交)
大麥搶票自動(dòng)化實(shí)操三步從環(huán)境搭好到訂單提交【免費(fèi)下載鏈接】ticket-purchase大麥自動(dòng)搶票支持人員、城市、日期場(chǎng)次、價(jià)格選擇項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase如果你經(jīng)歷過(guò)熱門(mén)演出開(kāi)售時(shí)頁(yè)面一直轉(zhuǎn)圈、手速再快也搶不到的情況開(kāi)源項(xiàng)目ticket-purchase或許值得一試。這個(gè)大麥搶票自動(dòng)化工具用 Selenium 驅(qū)動(dòng) PC 瀏覽器、用 Appium 驅(qū)動(dòng)安卓 App自動(dòng)完成從登錄、選觀演人、選城市場(chǎng)次價(jià)格到提交訂單的全流程。本文帶你走一遍環(huán)境搭建、參數(shù)配置、實(shí)際運(yùn)行和排錯(cuò)的完整路徑零基礎(chǔ)照著做也能跑起來(lái)。大麥搶票工具能替你做什么簡(jiǎn)單說(shuō)它替你接管手和眼。程序啟動(dòng)后會(huì)自動(dòng)依次執(zhí)行檢查環(huán)境 → 打開(kāi)瀏覽器或連接手機(jī)→ 掃碼登錄未登錄時(shí)→ 進(jìn)入演出詳情頁(yè) → 匹配城市、場(chǎng)次、票價(jià) → 選擇購(gòu)票數(shù)量 → 持續(xù)輪詢立即預(yù)訂按鈕 → 勾選觀演人 → 點(diǎn)擊立即提交。有兩件事需要你在用之前理解搶幾張票由你配置的觀演人決定users里寫(xiě) 2 個(gè)姓名就自動(dòng)購(gòu) 2 張目標(biāo)場(chǎng)次如果缺貨程序可以監(jiān)聽(tīng)缺貨登記狀態(tài)等票放出來(lái)再動(dòng)作。?? 本項(xiàng)目?jī)H供學(xué)習(xí)和研究使用請(qǐng)勿用于商業(yè)用途。請(qǐng)遵守大麥網(wǎng)使用條款使用自己的賬號(hào)不要同時(shí)運(yùn)行多個(gè)搶票腳本。雙通道搶票先選大麥網(wǎng)頁(yè)端還是 App 端項(xiàng)目把兩套完整實(shí)現(xiàn)分在兩個(gè)目錄里動(dòng)手前先決定走哪條通道通道目錄驅(qū)動(dòng)方式適用場(chǎng)景網(wǎng)頁(yè)端damai/Selenium 驅(qū)動(dòng) Chrome演出支持大麥網(wǎng)網(wǎng)頁(yè)購(gòu)買(mǎi)移動(dòng)端damai_appium/Appium 驅(qū)動(dòng)安卓 App演出只能在 App 端購(gòu)買(mǎi)選擇建議大麥的相當(dāng)一部分門(mén)票只能在 App 端購(gòu)買(mǎi)想覆蓋更多演出就優(yōu)先移動(dòng)端如果目標(biāo)演出網(wǎng)頁(yè)端也開(kāi)售且你的電腦環(huán)境更穩(wěn)定PC 通道上手更簡(jiǎn)單。下文兩條通道都會(huì)講到。上面是典型的大麥演出詳情頁(yè)。城市標(biāo)簽、場(chǎng)次、票價(jià)按鈕、地址欄這幾處就是下一節(jié)配置里要抓的四個(gè)值。三步完成大麥搶票環(huán)境搭建第 1 步克隆項(xiàng)目并安裝 Python 依賴兩條通道通用電腦需要 Python 3.9macOS / Windows / Linux 都支持。克隆代碼后安裝依賴git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase cd ticket-purchase pip install -r damai/requirements.txt也可以用 Poetry 管理依賴poetry install兩者都可以。第 2 步網(wǎng)頁(yè)端通道——裝好最新版 Chrome只需安裝最新版 Chrome 瀏覽器。ChromeDriver 會(huì)由腳本自動(dòng)下載并匹配版本不需要手動(dòng)找驅(qū)動(dòng)文件。第 3 步移動(dòng)端通道——裝 Node.js、Appium 和 Android SDK移動(dòng)端比網(wǎng)頁(yè)端多三樣?xùn)|西Node.js版本必須是 20.19.0、22.12.0 或 24.0.0用node --version確認(rèn)Appium 3.1.0npm install -g appium全局安裝再裝驅(qū)動(dòng)appium driver install uiautomator2Android 環(huán)境裝好 Android SDK 并配置ANDROID_HOME與ANDROID_SDK_ROOT環(huán)境變量啟動(dòng)模擬器或連上開(kāi)啟 USB 調(diào)試的真機(jī)用adb devices能看到設(shè)備即可。裝完跑一次項(xiàng)目自帶的環(huán)境檢查腳本./check_environment.sh它會(huì)逐項(xiàng)檢查Python、Node.js 版本兼容性、Appium 是否安裝、Android SDK 路徑是否存在、ADB 是否可用、設(shè)備是否連接、大麥 App 是否已裝、Appium 服務(wù)器是否在運(yùn)行、配置文件是否存在。全部打鉤就可以安心開(kāi)工。 項(xiàng)目附帶的 start_appium.sh 和 start_ticket_grabbing.sh 兩個(gè)腳本里Android SDK 路徑寫(xiě)死成了作者的 macOS 路徑。換機(jī)器使用前先打開(kāi)腳本把自己的 SDK 路徑替換掉。從演出詳情頁(yè)抓 5 個(gè)值完成大麥搶票配置所有搶票策略都寫(xiě)在配置文件中。兩條通道要抓的是同樣 5 個(gè)值演出鏈接、觀演人、城市、場(chǎng)次、票價(jià)。以 PC 端詳情頁(yè)為例具體抓法target_url打開(kāi)目標(biāo)演出詳情頁(yè)復(fù)制地址欄里的完整地址users你在大麥賬號(hào)里已實(shí)名添加的觀演人姓名必須與頁(yè)面展示完全一致包括空格、后綴city頁(yè)面上城市標(biāo)簽的文字如廣州dates / date目標(biāo)場(chǎng)次的日期如2023-10-28prices / price目標(biāo)票價(jià)按鈕上的文字如1039或內(nèi)場(chǎng)1199元。上圖把這幾個(gè)值在詳情頁(yè)上的位置都標(biāo)了出來(lái)。地址欄、城市、場(chǎng)次、票價(jià)就位后配置就完成了一半。網(wǎng)頁(yè)端寫(xiě)入 damai/config.json主要字段index_url大麥?zhǔn)醉?yè)、login_url登錄頁(yè)、target_url詳情頁(yè)鏈接、users、city、dates數(shù)組可寫(xiě)多個(gè)日期、prices數(shù)組可寫(xiě)多個(gè)票價(jià)、fast_mode快速模式、if_listen缺貨登記監(jiān)聽(tīng)、if_commit_order自動(dòng)提交訂單、max_retries最大重試次數(shù)默認(rèn) 1000、page_load_delay頁(yè)面加載等待秒數(shù)默認(rèn) 2。移動(dòng)端寫(xiě)入 damai_appium/config.jsonc{ server_url: http://127.0.0.1:4723, keyword: 周深, users: [王勝, 潘鴻運(yùn)], city: 深圳, date: 12.06, price: 內(nèi)場(chǎng)1199元, price_index: 5, if_commit_order: true }字段說(shuō)明keyword是搜索關(guān)鍵詞工具靠它在大麥 App 里找到目標(biāo)演出price_index是目標(biāo)票價(jià)在頁(yè)面中的序號(hào)從 0 開(kāi)始數(shù)。之所以需要它是因?yàn)?App 新版界面上票價(jià)按鈕的文本可能是空串沒(méi)法靠文字找按鈕只能按索引定位所以要提前手動(dòng)寫(xiě)進(jìn)去。 網(wǎng)頁(yè)端支持模糊匹配dates和prices可以寫(xiě)多種格式比如2026-04-11、4月11日、2026.04.11680、¥680、680元。候選寫(xiě)得越全越不怕頁(yè)面文字和你配置的不一樣。?? 最常見(jiàn)的兩個(gè)配置錯(cuò)誤users與賬號(hào)實(shí)名信息不一致程序會(huì)找不到觀演人city與頁(yè)面文字差一個(gè)空格。正式跑之前對(duì)著頁(yè)面逐字核對(duì)一遍。運(yùn)行大麥搶票腳本三步走完下單全流程移動(dòng)端通道推薦啟動(dòng) Appium 服務(wù)器運(yùn)行./start_appium.sh腳本會(huì)自動(dòng)設(shè)置環(huán)境變量、檢查 Node 版本、確認(rèn)設(shè)備和大麥 App 就緒然后啟動(dòng) 4723 端口的服務(wù)器也可以手動(dòng)執(zhí)行appium --port 4723準(zhǔn)備好手機(jī)在設(shè)備或模擬器上打開(kāi)大麥 App登錄賬號(hào)搜索目標(biāo)演出停在演出詳情頁(yè)開(kāi)始搶票運(yùn)行./start_ticket_grabbing.sh。它會(huì)先檢查 Appium 服務(wù)器是否在運(yùn)行、配置文件是否存在打印當(dāng)前keyword、city、users等你輸入y確認(rèn)后才會(huì)真正啟動(dòng)。如果腳本在你機(jī)器上跑不通也可以手動(dòng)進(jìn)damai_appium目錄執(zhí)行python damai_app_v2.py記得先設(shè)好ANDROID_HOME和ANDROID_SDK_ROOT。網(wǎng)頁(yè)端通道配置好后在項(xiàng)目根目錄運(yùn)行python damai/damai.py或cd damai后python damai.py。程序先做環(huán)境檢查打印 Chrome 版本、ChromeDriver 是否就緒然后打開(kāi)瀏覽器在登錄頁(yè)暫停等你用大麥 App 掃碼登錄。登錄完成之后剩下的全自動(dòng)。兩條通道的內(nèi)部流程一致流程圖如下從圖里值得記住的節(jié)點(diǎn)登錄優(yōu)先復(fù)用已有 cookie沒(méi)有才彈掃碼加載購(gòu)票信息后程序持續(xù)檢測(cè)購(gòu)票狀態(tài)——目標(biāo)票可搶購(gòu)就進(jìn)入購(gòu)買(mǎi)并提交訂單缺貨則走缺貨登記即將開(kāi)搶狀態(tài)會(huì)循環(huán)回去繼續(xù)盯。影響大麥搶票成功率的五個(gè)調(diào)優(yōu)參數(shù)配置文件里還有幾個(gè)開(kāi)關(guān)直接決定快不快和敢不敢自動(dòng)提交。第一次搶票建議按下面調(diào)fast_mode快速模式開(kāi)啟后所有等待被壓縮輪詢間隔從 1 秒降到 0.3 秒詳情頁(yè)選擇時(shí)間縮短 70% 以上整體省好幾秒。首次使用建議先關(guān)掉觀察流程跑順了再打開(kāi)if_commit_order自動(dòng)提交訂單首次使用設(shè)false在訂單確認(rèn)頁(yè)手動(dòng)核對(duì)金額和票務(wù)信息后再提交防止誤下單跑順了再設(shè)truemax_retries最大重試次數(shù)默認(rèn) 1000要卡開(kāi)售準(zhǔn)點(diǎn)搶可以調(diào)到 5000page_load_delay頁(yè)面加載等待默認(rèn) 2 秒網(wǎng)絡(luò)慢或經(jīng)常報(bào)找不到觀演人就加到 3~5 秒if_listen缺貨登記監(jiān)聽(tīng)保持開(kāi)啟目標(biāo)場(chǎng)次缺貨時(shí)程序會(huì)登記缺貨等回流票。參數(shù)之外時(shí)機(jī)同樣重要。參考節(jié)奏提前 30 分鐘啟動(dòng)腳本提前 10 分鐘完成登錄提前 5 分鐘打開(kāi)詳情頁(yè)。搶票時(shí)盡量用有線網(wǎng)絡(luò)關(guān)閉其他占帶寬的程序。?? 不要同時(shí)運(yùn)行多個(gè)搶票腳本更不要用來(lái)倒賣(mài)門(mén)票。請(qǐng)求越頻繁、實(shí)例越多越容易觸發(fā)平臺(tái)風(fēng)控。大麥搶票常見(jiàn)報(bào)錯(cuò)排查五種報(bào)錯(cuò)信息的解法剛搭環(huán)境時(shí)最容易撞上下面五類(lèi)報(bào)錯(cuò)解法項(xiàng)目 README.md 里都有1. Node version must be at least ^20.19.0Node.js 版本太低macOS 上brew upgrade node升級(jí)或安裝任一兼容版本。2. Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exportedAndroid SDK 路徑?jīng)]設(shè)置。執(zhí)行export ANDROID_HOME/你的/android/sdk和export ANDROID_SDK_ROOT...并寫(xiě)進(jìn)~/.zshrc或~/.bashrc持久化。3. Unable to find an active device or emulator沒(méi)連上設(shè)備adb devices查看真機(jī)要開(kāi) USB 調(diào)試模擬器要先啟動(dòng)完成adb shell getprop sys.boot_completed可以確認(rèn)設(shè)備是否已完全開(kāi)機(jī)。4. Connection refusedAppium 連不上Appium 服務(wù)器沒(méi)啟動(dòng)、4723 端口被占用、或配置里server_url寫(xiě)錯(cuò)。用curl http://127.0.0.1:4723/status驗(yàn)證服務(wù)器是否活著。5. ChromeDriver 版本不匹配SessionNotCreatedException網(wǎng)頁(yè)端直接重跑腳本即可驅(qū)動(dòng)會(huì)自動(dòng)下載匹配版本仍不行就執(zhí)行python damai/check_environment.py手動(dòng)檢查。另外網(wǎng)頁(yè)端如果提示未找到觀演人元素多半是頁(yè)面沒(méi)加載完或姓名格式對(duì)不上先加大page_load_delay再關(guān)掉fast_mode看掃描輸出確認(rèn)頁(yè)面實(shí)際展示的文字可能多了空格或后綴。程序內(nèi)置了觀演人掃描重試機(jī)制每 0.5 秒重試一次、最多 5 次能兜住大部分頁(yè)面慢半拍的情況。收尾與資源指引回顧整條鏈路克隆代碼 →./check_environment.sh檢查環(huán)境 → 從詳情頁(yè)抓 5 個(gè)值寫(xiě)進(jìn)配置 → 啟動(dòng) Appium、手機(jī)上停在詳情頁(yè) → 一鍵開(kāi)搶。第一次跑建議把if_commit_order關(guān)掉先完整走一遍流程確認(rèn)每個(gè)環(huán)節(jié)都正常再打開(kāi)自動(dòng)提交正式開(kāi)搶。后續(xù)用到的資料項(xiàng)目里都備好了獲取代碼git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase快速上手QUICK_START.md 列了完整的三步命令詳細(xì)文檔README.md移動(dòng)端為主含安裝與排錯(cuò)、完整使用指南(PC端).md.md)網(wǎng)頁(yè)端為主含參數(shù)表與性能對(duì)比、damai_appium/app.mdAppium 啟動(dòng)參數(shù)與 V2 版優(yōu)化說(shuō)明反饋渠道bug 和功能建議通過(guò)項(xiàng)目的 Issue 系統(tǒng)提交也歡迎直接提交 PR 參與改進(jìn)。祝你搶票順利現(xiàn)場(chǎng)見(jiàn)?!久赓M(fèi)下載鏈接】ticket-purchase大麥自動(dòng)搶票支持人員、城市、日期場(chǎng)次、價(jià)格選擇項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考