火車搶票是一件令人煩躁的事情,常常需要反復刷新頁面才能夠搶到心儀的車票。但是有了Python語言,我們可以用代碼來自動完成這項任務,大大提高搶票的成功率。
# 導入必要的庫 import requests import json import time # 設置前置參數 from_station = '廣州' to_station = '深圳' date = '2021-12-31' train_no = 'G1001' # 定義函數 def book_ticket(from_station, to_station, date, train_no): # 構造請求頭 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } # 構造請求URL url = 'https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=' + date + '&leftTicketDTO.from_station=' + from_station + '&leftTicketDTO.to_station=' + to_station + '&purpose_codes=ADULT' # 發送請求 response = requests.get(url, headers=headers) # 解析響應 all_trains = json.loads(response.text)['data']['result'] for train in all_trains: if train_no in train: ticket_list = train.split('|') if ticket_list[3] == '有' or ticket_list[3] == '有N': print('掌握時機,開始搶票!') return True else: print('當前車次座位已售空,等待下一班車...') return False # 循環檢測可否搶票 while True: if book_ticket(from_station, to_station, date, train_no): print('恭喜你,搶票成功!') break else: print('無法搶到車票,等待下一次檢測...') time.sleep(5)
以上就是一個簡單的Python火車搶票程序,通過構造請求頭和請求URL,發送HTTP請求并解析響應,自動檢測車次是否有票,如果有就嘗試搶票。通過循環檢測,可以讓程序一直運行,直到完成搶票任務。