社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

零基础用Python | 实现12306火车票实时查询

马哥Linux运维 • 7 年前 • 883 次点击  

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

1
接口设置

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

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

$ tickets from to date

最终 $ tickets [-gdtkz] from to date
2
开发环境


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

$ virtualenv -p /usr/bin/python3 venv

通过下面的命令激活它:

$ . venv/bin/activate
3
解析参数


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

$ pip3 install docopt

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

4
获取数据


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

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

保存stations.html

5
显示结果


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

$ pip3 install prettytable


点击图片,了解更多课程详情


——马哥教育,理论与实战并重——

——让你懂,更让你行——




今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/weixin/RefzvwOncd
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/2154
 
883 次点击