python实现12306车票查询

本文介绍了如何使用Python3编写脚本查询12306火车票,涉及requests、docopt、prettytable和colorama模块。通过分析12306的网页接口,获取车票查询的GET请求参数,并解析返回的JSON数据来提取车次信息。
摘要由CSDN通过智能技术生成

看到网上有很多火车票查询的小脚本,参考一下,发现很多都已经不能再运行了,据说12306接口返回的数据格式更新比较快,这里自己也写了一个。

环境

  • Mac osx
  • python3.6
  • pycharm

效果图

预览效果

编码

  1. 安装脚本用到的模块

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下面的命令解析出一个字典,“[ ]”中的是选项,一般不写代表全部,写了代表查询某一选项对应的数据,
若是选项输入错误,不会抛出异常&#

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值