看到网上有很多火车票查询的小脚本,参考一下,发现很多都已经不能再运行了,据说12306接口返回的数据格式更新比较快,这里自己也写了一个。
环境
- Mac osx
- python3.6
- pycharm
效果图
编码
- 安装脚本用到的模块
requests, 用于请求12306网站网址
docopt, 解析命令行参数
prettytable, 数据用表格的形式打印在终端
colorama, 为打印在表格中的数据着色
安装方式,直接用pip命令就好:
pip install requests prettytable docopt colorama
下面先来介绍一下prettytable docopt colorama这三个模块
docopt
python命令行参数解析工具有很多,这里参考别的查票脚本用的docopt,为了对这个模块进行了解学习,本篇文章也用了这个模块,首先针对本文,我们要查询火车票信息,肯定要输入出发地点,到达地点,出发日期,以及要查询的票的种类,于是我们需要的命令行模型如下:
python tickets.py [-gdtrkz]
- 出发地
- 目的地
- 日期
- [-gdtrkz] 车票类型(对应)
看一下下面的代码
#coding=utf-8
"""
Usage:
python tickets.py [-gdtrkz] <from> <to> <date>
"""
from docopt import docopt
arguments = docopt(__doc__)
print(arguments)
终端运行上面的代码结果如下:
由上面的测试可以看出,docopt能从注释中的Usage下面的命令解析出一个字典,“[ ]”中的是选项,一般不写代表全部,写了代表查询某一选项对应的数据,
若是选项输入错误,不会抛出异常&#