都用过12306

用Python写一个命令行的火车票查看器

要求在命令行敲一行命令来获得你想要的火车票信息

python火车票购买程序(Python火车票查询器)(1)

接口设置

先给这个小应用起个名字吧,既然及查询票务信息,那就叫它tickets

我们希望用户只要输入出发站,到达站以及日期就让就能获得想要的信息,所以tickets应该这样被使用:

$ tickets from to date

python火车票购买程序(Python火车票查询器)(2)

最终 $ tickets [-gdtkz] from to date

开发环境

用virtualenv建立虚拟环境,用Python3开发,

$ virtualenv -p /usr/bin/python3 venv

通过下面的命令激活它:

$ . venv/bin/activate

解析参数

python火车票购买程序(Python火车票查询器)(3)

获取数据

python火车票购买程序(Python火车票查询器)(4)

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

python火车票购买程序(Python火车票查询器)(5)

https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.8955

保存stations.html

python火车票购买程序(Python火车票查询器)(6)

python火车票购买程序(Python火车票查询器)(7)

python火车票购买程序(Python火车票查询器)(8)

python火车票购买程序(Python火车票查询器)(9)

显示结果

prettytable这个库可以让我们它像MySQL数据库那样格式化显示数据

$ pip3 install prettytable

python火车票购买程序(Python火车票查询器)(10)

各位同学注意啦!!

欢迎加入我的Python交流群

626062078

,