因為獲取每個車次的餘票,都需要請求資料,,會有阻塞,這裡採用協程,提高效率
首先,寫個函式,是處理單個車次的加入票價行為
def
get_one_price
(self, info_dict):
# 呼叫獲取票價的函式
price_dict = get_price(info_dict['train_no'] , info_dict["from_station_no"] ,
info_dict["destinction_no"] , info_dict["seat_type"] , self.date)
info_dict.update(price_dict) # 更新info_dict
info_dict指的是儲存單個車次資訊的字典
def
add_price
(self):
tasks =
for info_dict in self.tickets_info:
# 遍歷獲取每個車次字典,布置為協程任務,把任務加入tasks列表
# 等待所有任務全部完成,才進行下移步
gevent.joinall(tasks)
class
get_tickets:
def__init__
(self,start_station,destination,date):
self.date = date
self.params =
self.get_data()
self.add_price()
get_tickets("北京","上海","2018-06-19").tickets_info
這句的返回值,是乙個包含了所有餘票車次資訊&&對應票價的列表
那麼把這些資訊是輸出在控制台,還是顯示在網頁上,相關操作,下回再說
12306餘票查詢 二 獲取餘票資料
上節分析了獲取餘票資料的請求,本節開始抓取資料class get tickets def init self,start station,destination,date self.date date self.params 首先是傳遞你到底要查什麼,就是前面分析所需的三個引數 其實這裡要判斷一下,...
12306 餘票檢測軟體
根據日期,始發站,終點站,車次等資訊檢測 12306 是否有餘票 給 12306 購票網頁注入指令碼,指令碼模擬請求,解析引數,獲取最終的餘票資訊 餘票資訊通過介面資訊通知服務端 1.獲取所有車站名稱對應的 map station names是 12306 定義的全部變數,注入的指令碼可以直接使用。...
獲取12306最新的餘票資訊
最近也快到春運高峰期了,每年到這個時候都是鐵路部門最忙的時候,同時也是12306 以後都以 來代替 大考的時候,出於乙個技術人員對於 的好奇所以嘗試獲取它的最新資料。之前準備實現乙個第三方訂票系統,後來分析之後發現破解驗證碼這第一關就沒辦法完成,所以最後放棄這個想法。後來考慮即使不能通過第三方來訂票...