零基础入门 | 如何用Python实现12306火车票实时查询?


大家都用过12306,今天我们来学习写一个Python程序,要求在命令行敲一行命令来获得你想要的火车票信息。


零基础入门 | 如何用Python实现12306火车票实时查询?


1

接口设置


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


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

$ tickets from to date

零基础入门 | 如何用Python实现12306火车票实时查询?

最终 $ tickets [-gdtkz] from to date


2

开发环境


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

$ virtualenv -p /usr/bin/python3 venv

通过下面的命令**它:

$ . venv/bin/activate

3

解析参数


Python有很多写命令行应用的工具,我们选用docopt这个简单易用的工具,我们先安装它:

$ pip3 install docopt

docopt可以按我们在文档字符串中定义的格式来解析参数,

零基础入门 | 如何用Python实现12306火车票实时查询?

零基础入门 | 如何用Python实现12306火车票实时查询?


4

获取数据


零基础入门 | 如何用Python实现12306火车票实时查询?

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

零基础入门 | 如何用Python实现12306火车票实时查询?

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

保存stations.html

零基础入门 | 如何用Python实现12306火车票实时查询?

零基础入门 | 如何用Python实现12306火车票实时查询?

零基础入门 | 如何用Python实现12306火车票实时查询?

零基础入门 | 如何用Python实现12306火车票实时查询?


5

显示结果


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

$ pip3 install prettytable

零基础入门 | 如何用Python实现12306火车票实时查询?

来源:http://www.sohu.com/a/144252655_236714


云计算免费课程火热开讲中,运维干货内容免费抢先听点击文末“阅读原文”即可免费听运维课当然也有其他IT课程免费听(Java、前端、大数据、Python、设计、C++、嵌入式、网络营销),后台回复“姓名+联系方式+所在+课程名称”也可申请其他免费课程,火速抢先~~~~

PS:记得查收小编送你的免费大礼包呦~

福利 | 一万多套PPT模板等你免费来拿!无条件领取!

免费送 | 1000多套简历模板免费拿,附赠简历制作教程!

免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~

零基础入门 | 如何用Python实现12306火车票实时查询?零基础入门 | 如何用Python实现12306火车票实时查询?

▼▼点击【阅读原文】,免费听5天Linux运维干货分享课,火热开讲中,速来抢!

相关文章:

  • 2022-01-31
  • 2021-07-06
  • 2021-08-05
  • 2022-12-23
  • 2021-07-21
  • 2021-05-10
  • 2021-05-19
猜你喜欢
  • 2021-07-15
  • 2021-04-12
  • 2022-12-23
  • 2021-06-24
  • 2022-01-01
  • 2021-08-04
  • 2022-02-27
相关资源
相似解决方案