国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

手把手教你用python搶票回家過年(代碼簡單)

2020-02-22 22:55:56
字體:
來源:轉載
供稿:網友

首先看看如何快速查看剩余火車票?

當你想查詢一下火車票信息的時候,你還在上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 docopt

docopt可以按我們在文檔字符串中定義的格式來解析參數,在tickets.py中:

 

下面我們運行一下這個程序:

$ python3 tickets.py 上海 北京 2016-07-01

我們得到下面的參數解析結果:

 

獲取數據

參數已經解析好了,下面就是如何獲取數據了,這也是最主要的部分。首先我們打開12306,進入余票查詢頁面,如果你使用chrome,那么按F12打開開發者工具,選中Network一欄,在查詢框鐘我們輸入上海到北京,日期2016-07-01, 點擊查詢,我們在調試工具發現,查詢系統實際上請求了這個URL

https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=2016-07-01&from_station=SHH&to_station=BJP

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新乡市| 新源县| 福安市| 上犹县| 曲阳县| 镶黄旗| 日照市| 阳西县| 若羌县| 土默特左旗| 内丘县| 景洪市| 瑞丽市| 巴彦县| 宁蒗| 阿克陶县| 天柱县| 南康市| 马关县| 翁源县| 台南市| 商城县| 华宁县| 凌源市| 海丰县| 南平市| 吉安市| 富锦市| 屏边| 玉溪市| 广丰县| 凉山| 十堰市| 调兵山市| 荔波县| 海门市| 云霄县| 瑞昌市| 阿城市| 寿宁县| 凌海市|