大家好,又见面了,我是你们的朋友全栈君。
1. 知识点:
Python 基础知识的综合运用docopt, requests, colorama, prettytable 库的使用2 requests: 使用Python访问HTTP资源的必备库
prettytable: 可以将打印内容格式化为像MySQL一样的输出
docopt:命令行参数解析工具
colorama: 命令行着色工具
3.
解析参数
docopt模块可以按照我们自己在文档字符串定义的格式来解析参数,如下
代码语言:javascript复制# -*- coding:utf-8 -*-"""命令行火车票查看器Usage:tickets [-gdtkz]Options:-h,--help显示帮助菜单-g 高铁-d 动车-t 特快-k 快速-z 直达Example:tickets 太原 北京 2019-06-12tickets -dg 天津 南昌 2019-06-10"""代码语言:javascript复制arguments = docopt(__doc__)由上面的程序中,docopt会根据我们在docstring中定义的格式解析参数并返回一个字典(arguments)
代码语言:javascript复制 -tk 北京 太原 2019-06-10{'-d': False, '-g': False, '-k': True, '-t': True, '-z': False, '': '2019-06-10', '': '北京', '': '太原'}2. 获取数据
参数解析好以后,我们可以通过12306官网获取我们需要的数据,IE浏览器打开12306官网的查票系统,输入出发地,目的地,日期,查询,通过F12开发者模式找到请求地址(刷新一次):
(图片上传出错,后续补)
通过此请求URL,我们可以看到有我们需要的信息,或者直接点击参数查看:
可以看到参数为:出发地查询类型(成人,学生)日期 目的地
通过正文可以看到:返回一个json格式的数据,即一个字典,里边包括了各个站点的中文名和站点代号,我们可以利用这个接口来获取。
打开此页的源码(在页面右击选择查看源码):
查看一下具体内容:
复制此