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