手把手教你用python搶票回家過年(程式碼簡單) | 如何用python搶票
首先看看如何快速檢視剩餘火車票?當你想查詢一下火車票資訊的時候,你還在上12306官網嗎?或是開啟你手機裡的APP?下面讓我們來用Python寫一個命令列版的火車票檢視器,只要在命令列敲一行命令就能獲得你想要的火車票資訊!如果你剛掌握了Python基礎,這將是個不錯的小練習。介面設計一個應用寫出來最終是要給人使用的,哪怕只是給你自己使用。所以,首先應該想想你希望怎麼使用它?讓我們先給這個小應用起個名字吧,既然及查詢票務資訊,那就叫它tickets好了。我們希望使用者只要輸入出發站,到達站以及日期就讓就能獲得想要的資訊,...
首先看看如何快速檢視剩餘火車票?
當你想查詢一下火車票資訊的時候,你還在上12306官網嗎?或是開啟你手機裡的APP?下面讓我們來用Python寫一個命令列版的火車票檢視器, 只要在命令列敲一行命令就能獲得你想要的火車票資訊!如果你剛掌握了Python基礎,這將是個不錯的小練習。
介面設計
一個應用寫出來最終是要給人使用的,哪怕只是給你自己使用。所以,首先應該想想你希望怎麼使用它?讓我們先給這個小應用起個名字吧,既然及查詢票務資訊,那就叫它tickets好了。我們希望使用者只要輸入出發站,到達站以及日期就讓就能獲得想要的資訊,所以tickets應該這樣被使用:
$ tickets from to date另外,火車有各種型別,高鐵、動車、特快、快速和直達,我們希望可以提供選項只查詢特定的一種或幾種的火車,所以,我們應該有下面這些選項:
-g 高鐵-d 動車-t 特快-k 快速-z 直達
這幾個選項應該能被組合使用,所以,最終我們的介面應該是這個樣子的:
$ tickets [-gdtkz] from to date介面已經確定好了,剩下的就是實現它了。
開發環境
寫Python程式的一個良好實踐是使用virtualenv這個工具建一個虛擬的環境。我們的程式使用Python3開發,下面在你的工作目錄下建一個資料夾tickets,進去建立一個虛擬環境:
$ virtualenv -p /usr/bin/python3 venv通過下面的命令啟用它:
$ . venv/bin/activate解析引數
Python有很多寫命令列應用的工具,如argparse, docopt, options…這裡,我們選用docopt這個簡單易用的工具,我們先安裝它:
$ pip3 install docoptdocopt可以按我們在文件字串中定義的格式來解析引數,在tickets.py中:
下面我們執行一下這個程式:
$ python3 tickets.py 上海 北京 2016-07-01我們得到下面的引數解析結果:
獲取資料
引數已經解...