python查火车票_使用python制作查询火车票工具
使用python脚本实现查询火车票信息的效果图如下:
实现的代码:
1 # coding: utf-8
2
3 """命令行火车票查看器
4
5 Usage:
6 tickets [-gdtkz]
7
8 Options:
9 -h,--help 显示帮助菜单
10 -g 高铁
11 -d 动车
12 -t 特快
13 -k 快速
14 -z 直达
15
16 Example:
17 tickets 北京 上海 2016-10-10
18 tickets -dg 成都 南京 2016-10-10
19 """
20
21 import json
22 import requests
23 import prettytable
24 from docopt import docopt
25 from colorama import init, Fore
26
27
28 class CollectInfo:
29 def __init__(self):
30 self.qurey_ret = []
31 self.header = ['车次信息', '发/到时间', '发/到站', '历时', '票价', '余票']
32
33 # 获取车次相关的所有信息
34 def query_html_ret(self, query_args):
35 url = 'http://api.12306.com/v1/train/trainInfos?arrStationCode={to_station}&deptDate={date}\
36 &deptStationCode={source_station}&findGD=false'.format(to_station=query_args['to_station'],
37 source_station=query_args['source_station'],
38 date=query_args['date'])
39 row_ret = requests.get(url)
40 return row_ret.json()
41
42 # 解析获取到的结果
43 def paser_ret(self, row_ret):
44 trains_info = row_ret['data']['trainInfos']
45 for info in trains_info:
46 row_info = []
47 # 获取车次信息
48 row_info.append('\n' + info['trainCode'])
49
50 # 获取车次到站时间信息
51 row_info.append('\n' + '\n'.join([Fore.GREEN + info['deptTime']+ Fore.RESET,
52 Fore.RED + info['arrTime']+ Fore.RESET]))
53
54 # 获取车次站点名称
55 row_info.append('\n' + '\n'.join([Fore.GREEN + info['deptStationName'] + Fore.RESET,
56 Fore.RED + info['arrStationName']+ Fore.RESET]))
57
58 # 获取车次到达站点所需时间
59 row_info.append('\n' + info['runTime'])
60
61 # 获取票价以及余票信息
62 seat_price = []
63 seat_num = []
64 for seat in info['seatList']:
65 seat_price.append(seat['seatName'] + ':' + seat['seatPrice'])
66 if int(seat['seatNum']) > 10:
67 ticknum = Fore.GREEN + seat['seatNum'] + Fore.RESET
68 else:
69 ticknum = seat['seatNum']
70 seat_num.append(ticknum)
71 row_info.append('\n'.join(seat_price))
72 row_info.append('\n'.join(seat_num))
73 self.qurey_ret.append(row_info)
74 self.qurey_ret.append([' ', ' ', ' ', ' ', ' ', ' '])
75
76 return self.qurey_ret
77
78 def show_with_table(self):
79 ticket_table = prettytable.PrettyTable()
80
81 ticket_table.field_names = self.header
82
83 for row in self.qurey_ret:
84 if len(row) == 0:
85 continue
86 ticket_table.add_row(row)
87 return ticket_table
88
89
90 def main():
91 arguments = docopt(__doc__)
92 query_args = {}
93 init()
94
95 # 获取所有站点信息(stations.txt信息通过 函数获取)
96 # https: // kyfw.12306.cn / otn / resources / js / framework / station_name.js?station_version = 1.8971
97 f = open('stations.txt', 'r')
98 info = f.read()
99 stations_info = json.loads(info)
100
101 # 从所有站点信息中获取所要查询站点的代码信息
102 query_args['to_station'] = stations_info[arguments['']]
103 query_args['source_station'] = stations_info[arguments['']]
104 query_args['date'] = arguments['']
105
106 # 向12306查询,得到跟车次相关的所有信息
107 collect_train = CollectInfo()
108 row_ret = collect_train.query_html_ret(query_args)
109
110 collect_train.paser_ret(row_ret)
111 table = collect_train.show_with_table()
112 print(table)
113
114
115 if __name__ == '__main__':
116 main()
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
python查火车票_使用python制作查询火车票工具相关推荐
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- 使用python制作查询火车票工具
使用python脚本实现查询火车票信息的效果图如下: 实现的代码: 1 # coding: utf-8 2 3 """命令行火车票查看器 4 5 Usage: 6 tic ...
- python爬虫抢火车票_利用Python实现12306爬虫--查票
在上一篇文章(http://www.cnblogs.com/fangtaoa/p/8321449.html)中,我们实现了12306爬虫的登录功能,接下来,我们就来实现查票的功能. 其实实现查票的功能 ...
- python对excel增删改查语句_利用python模拟sql语句对员工表格进行增删改查
本文主要给大家介绍了关于python模拟sql语句对员工表格进行增删改查的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 具体需求: 员工信息表程序,实现增删改查操作: 可进行模糊查询, ...
- python培训班-Python培训机构_高品质Python线下开发培训班推荐-黑马程序员
Python编程基础基础班1 课时:15天技术点:97项测验:2次学习方式:线下面授 学习目标 1.掌握Python开发环境基本配置|2.掌握运算符.表达式.流程控制语句.数组等的使用|3.掌握字符串 ...
- python 创意项目_针对python开发人员的10个很棒的python项目创意
python 创意项目 The joy of coding Python should be in seeing short, concise, readable classes that expre ...
- python char 相等_用 Python 实现 Excel文本函数
用 Python 实现 Excel文本函数 Excel 是非常强大的电子表格软件,大家日常经常用 Excel 处理成绩.师生名单.分析数据等,对 Excel 的函数比较了解,通过用 Python 实现 ...
- python 免费空间_用python做大数据
不学Python迟早会被淘汰?Python真有这么好的前景? 最近几年Python编程语言在国内引起不小的轰动,有超越Java之势,本来在美国这个编程语言就是最火的,应用的非常非常的广泛,而Pytho ...
最新文章
- java phantomjs 2.1.1_Java之网络爬虫WebCollector2.1.2+selenium2.44+phantomjs2.1.1
- Warning message:In a + b : longer object length is not a multiple of shorter object length
- 用 Hadoop 进行分布式并行编程, 第 2 部分 程序实例与分析
- Oracle过滤与排序
- WinPcap pcap_next_ex抓包
- VS2012找不到EF框架实体模型的解决方法
- 网页制作中如何自定义网页图标
- 端到端测试 VS 单元测试
- w ndoWs8pE模式下载,win7 PE
- python spyder下载_2.4 熟悉Anaconda3的开发工具——Spyder
- axios官方文档——中文版
- 如何设置最美的win11桌面(附隐藏任务栏方法)
- QT开发代码格式化设置
- 易知微母公司袋鼠云获过亿元C+轮融资,深耕国产自研数字化领域
- 《失控》书摘与读书笔记
- 【菠萝狗四足机器人】二次开发教程--第一章 【简介与开发环境搭建】
- 逆商之CORE和LEAD
- 包装类------拆箱与装箱
- 原生video标签隐藏底部功能按钮
- 用Python制作简单的小游戏
热门文章
- Spring boot之Actutor
- python的udp攻击
- 变频器必须设置的5大参数
- 【飞控开发基础教程9】疯壳·开源编队无人机-PWM(电机控制)
- Linux驱动开发学习笔记【12】:Linux自带LED灯驱动
- 《黑客攻防技术宝典:Web实战篇》习题答案(一)
- 《黑客攻防技术宝典:Web实战篇》习题答案(三)
- 小程序开发--- 1. 获取数组中某个字段的值或获取列表索引
- springboot请求注解的使用Get/Post
- 惯量辨识c语言程序设计,异步电机参数在线辨识技术的(硬件部分)毕业设计.doc...