境搭建到搶票執(zhí)行)
大麥搶票腳本完整教程從環(huán)境搭建到搶票執(zhí)行【免費下載鏈接】Automatic_ticket_purchase大麥網(wǎng)搶票腳本項目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase熱門演出門票開售倒計時時人工完成選價位、填購票人、點支付的連串操作基本來不及。大麥搶票腳本 Automatic_ticket_purchase 能把這套流程自動化登錄后持續(xù)用 API 查詢目標(biāo)價位的按鈕狀態(tài)一旦出現(xiàn)立即購買就立即發(fā)請求提交訂單。 大麥搶票腳本項目定位與功能概覽這是一個面向大麥網(wǎng) PC 端購票的 Python 腳本。V2.0 起只在登錄時用 selenium 打開頁面其余環(huán)節(jié)全部通過 requests 直接調(diào)用接口省去頁面元素加載的等待V2.1 又補充了選座購買。需要留意README 明確標(biāo)注項目已停止維護、大部分購買方式已遷移至手機端因此它更適合用來學(xué)習(xí)接口搶票的實現(xiàn)思路而非作為生產(chǎn)工具。核心亮點直接請求大麥 PC 端接口僅登錄環(huán)節(jié)依賴 selenium 打開頁面登錄狀態(tài)緩存到 cookies.pkl再次啟動無需重新走頁面登錄自動識別即將開搶 / 缺貨登記 / 立即購買 / 選座購買四種按鈕狀態(tài)并分流處理V2.1 支持在指定價位下選座搶票暫不支持連坐對比維度手工頁面操作本腳本票況監(jiān)控手動刷新頁面查看循環(huán)調(diào)用接口讀取按鈕狀態(tài)登錄狀態(tài)每次啟動重新登錄緩存 cookies.pkl 復(fù)用下單點擊等頁面加載后點擊解析參數(shù)后直接發(fā)請求選座購買座圖上逐個手動點過濾可售座位后自動挑選 搶票腳本環(huán)境搭建與首次運行步驟了解項目分工后就可以在自己電腦上搭環(huán)境了整個過程拆成裝依賴、改參數(shù)、跑起來三步。2.1 環(huán)境準備與 ChromeDriver 配置git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase pip install -r requirements.txt依賴只有 requests、selenium、beautifulsoup4、pyexecjs 四個安裝很快。接著下載與本地 Chrome 瀏覽器版本匹配的 ChromeDriver放到項目根目錄并按系統(tǒng)重命名Windows 為 chromedriver_windowsmacOS 為 chromedriver_macLinux 為 chromedriver_linux——tools.py 中的 account_login() 會按系統(tǒng)拼接驅(qū)動路徑版本不匹配時瀏覽器起不來。2.2 必改的兩個參數(shù)item_id 與 viewer最需要手動修改的位置是 Automatic_ticket_purchase.py 中__init__的參數(shù)第 23-29 行self.item_id: int 610820299671 # 大麥商品id self.viewer: list [viewer1] # 常用購票人已登記的姓名 self.buy_nums: int 1 # 購買票數(shù), 需與觀影人數(shù)量一致 self.ticket_price: int 180 # 購買指定票價item_id 是場次的唯一標(biāo)識同一演出不同城市對應(yīng)不同的值取大麥商品頁 URL 里的 id 參數(shù)即可viewer 的姓名必須與我的大麥里登記的常用購票人完全一致否則提交訂單時會被攔截2.3 首次運行與登錄方式選擇python Automatic_ticket_purchase.py # 默認賬號密碼登錄 python Automatic_ticket_purchase.py --mode qr # 改用掃碼登錄首次運行沒有本地 cookies腳本會按所選方式完成頁面登錄成功后狀態(tài)寫入 cookies.pkl之后再運行會優(yōu)先讀取該文件跳過打開瀏覽器登錄的環(huán)節(jié)。?? 大麥搶票腳本核心功能登錄緩存、狀態(tài)監(jiān)控與選座購買三步搭建完成后腳本已經(jīng)能跑下面拆解它啟動后按什么順序推進方便你改參數(shù)時知道每一步在看什么。3.1 登錄狀態(tài)緩存cookies.pkl 復(fù)用能做什么避免每次啟動都重走頁面登錄。怎么工作tools.py 的 account_login() 用 selenium 打開登錄頁成功后把 cookies 寫入 cookies.pkl下次運行時 run() 先讀取該文件再調(diào) check_login_status() 校驗以頁面標(biāo)題是否為我的大麥-個人信息判斷有效性。關(guān)鍵細節(jié)cookies 過期或失效時會提示登錄失敗, 請檢查登錄賬號信息此時刪除 cookies.pkl 重新登錄即可。3.2 按鈕狀態(tài)監(jiān)控與自動下單能做什么循環(huán)輪詢目標(biāo)價位的按鈕狀態(tài)等立即購買出現(xiàn)才啟動下單流程。怎么工作step1_get_order_info 請求詳情頁 subpage 接口拿到 sku 按鈕文本run() 里按四種狀態(tài)分流if ticket_sku_status 即將開搶: continue # 未開售, 繼續(xù)輪詢 elif ticket_sku_status 缺貨登記: return False # 目標(biāo)價位已售空, 退出 elif ticket_sku_status 立即購買: submit_order_info self.step2_click_buy_now(ex_params, buy_serial_number) break # 進入訂單確認與提交關(guān)鍵細節(jié)命中立即購買后step2_click_buy_now 先從訂單確認頁解析出下單參數(shù)再由 step3_submit_order 匹配觀演人信息并 POST createOrder 接口成功后打印 alipayOrderId 與支付寶支付鏈接支付仍需人工完成。3.3 選座購買流程V2.1 新增能做什么當(dāng)按鈕狀態(tài)是選座購買時自動拉取座位數(shù)據(jù)并挑出 buy_nums 個座位提交。怎么工作依次調(diào)用 tools.py 中的 get_select_seat_params 獲取 id 參數(shù)集、get_seat_dynamic_info 拿 stand_id 與價位表請求 sign 由 signcode.js 配合 execjs 計算再用 format_valuable_seatid 過濾掉不可售及非目標(biāo)價位的座位最后由 pick_seat 順序挑選。關(guān)鍵細節(jié)目前只支持單一目標(biāo)價位、暫不支持連坐README 有注明目標(biāo)價位下無可用座位時會提示獲取sku_id失敗并退出。 搶票腳本核心配置項速查表正式使用前列一遍這張表能提前避開參數(shù)錯誤參數(shù)作用示例值注意事項login_id / login_password大麥網(wǎng)登錄憑證account / password僅賬號登錄方式需要item_id目標(biāo)演出的商品id610820299671取自詳情頁 URL 的 id 參數(shù)不同城市不同viewer常用購票人姓名列表[李四]必須與頁面登記信息完全一致buy_nums購買票數(shù)1必須等于 viewer 列表長度ticket_price目標(biāo)票價元180用于匹配價位選座時還用于篩選座位--mode登錄方式account / qr默認 account 大麥搶票腳本常見問題與避坑清單配置完仍跑不通時按這張表逐項排查覆蓋了絕大多數(shù)高頻問題現(xiàn)象可能原因解決方式提示登錄失敗cookies 過期或賬號密碼錯誤刪除 cookies.pkl 重新登錄或改用 --mode qr瀏覽器無法啟動、selenium 報錯ChromeDriver 版本與 Chrome 不匹配或文件未放根目錄、命名不對下載對應(yīng)版本驅(qū)動重命名為 chromedriver_windows 等并置于項目根目錄提示購買數(shù)量與實際觀演人數(shù)量不符buy_nums 與 viewer 列表長度不一致兩者改為相等提示請檢查輸入的觀演人信息viewer 姓名與頁面常用購票人不一致到我的大麥-常用購票人逐字核對提示手慢了后退出目標(biāo)價位按鈕已是缺貨登記換一個價位檔修改 ticket_price請求超時、提示獲取購買必備參數(shù)異常網(wǎng)絡(luò)波動或接口返回結(jié)構(gòu)變化檢查網(wǎng)絡(luò)后重跑接口變更時需更新 step2_click_buy_now 的解析邏輯 搶票成功率進階優(yōu)化方向跑通基礎(chǔ)流程后可以按收益從高到低嘗試兩個低成本優(yōu)化多價位兜底腳本目前只設(shè)一個 ticket_price該價位售空就直接退出。把 run() 的循環(huán)改為按 2-3 個價位依次嘗試能擴大可成交范圍。開售前預(yù)熱開售前幾分鐘啟動腳本讓登錄與 get_api_param() 參數(shù)獲取在開售前完成開售時刻循環(huán)只負責(zé)查狀態(tài)減少真正搶票瞬間的耗時。注意保持請求間隔不要高頻轟炸接口。項目適合想學(xué)習(xí)接口自動化思路、或有 PC 端大麥搶票需求的讀者。僅供學(xué)習(xí)研究請遵守平臺使用規(guī)則、合理使用?!久赓M下載鏈接】Automatic_ticket_purchase大麥網(wǎng)搶票腳本項目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考