用python判断火车票座位_Python3 实现火车票查询工具
#!/usr/bin/env python3
"""
Train tickets query via command-line
Usage:
tickets [-gdtkz]
Options:
-h, --help 显示帮助菜单
-g 高铁
-d 动车
-t 特快
-k 快速
-z 直达
Example:
tickets beijing shanghai 2016-08-25
"""
from docopt import docopt
import re
import requests
from prettytable import PrettyTable
class TrainCollection(object):
# 显示车次、出发/到达站、出发/到达时间、历时、一等座、二等座、软卧、硬卧、硬座
header = 'train station time duration first second softsleep hardsleep hardsit'.split()
def __init__(self, rows):
self.rows = rows
def _get_duration(self, row):
#获取车次运行时间
duration = row.get('lishi').replace(':', 'h') + 'm'
if duration.startswith('00'):
return duration[4:]
if duration.startswith('0'):
return duration[1:]
return duration
@property
def trains(self):
for row in self.rows:
train = [
#车次
row['station_train_code'],
#出发站
'\n'.join([row['from_station_name'], row['to_station_name']]),
#出发、到达时间
'\n'.join([row['start_time'], row['arrive_time']]),
#历时
self._get_duration(row),
#一等座
row['zy_num'],
#二等座
row['ze_num'],
#软卧
row['rw_num'],
#软座
row['yw_num'],
#硬座
row['yz_num']
]
yield train
def pretty_print(self):
'''
数据已经获取到了,剩下的就是提取我们要的信息并将它显示出来
prettytable这个库可以让我们像MySQL数据库那样格式化显示数据
'''
pt = PrettyTable()
#设置每一列的标题
pt._set_field_names(self.header)
for train in self.trains:
pt.add_row(train)
print(pt)
#get stations
url = "https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.8955"
r = requests.get(url, verify=False)
stations = re.findall(r'([A-Z]+)\|([a-z]+)', r.text)
stations = dict(stations)
stations = dict(zip(stations.values(), stations.keys()))
#main func
def cli():
'''
command-line interface
'''
arguments = docopt(__doc__)
from_station = stations.get(arguments[''])
to_station = stations.get(arguments[''])
date = arguments['']
#print(arguments)
#构建URL
url = 'https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate={}&from_station={}&to_station={}'\
.format(date, from_station, to_station)
r = requests.get(url, verify=False)
rows = r.json()['data']['datas']
trains = TrainCollection(rows)
trains.pretty_print()
if __name__ == "__main__":
cli()
用python判断火车票座位_Python3 实现火车票查询工具相关推荐
- python判断火车票座位_Python3 实现火车票查询工具
首先,感谢实验楼的平台.为我们这些小白提供了学习的平台.其次针对这个项目来说的话,其实算是思路比较简单的.无非就是查询然后展示.不过里面涉及到的东西是很多的,比如编码的转换.类和函数.yeilde.. ...
- python判断火车票座位代码_12306 火车票监控Python代码
import urllib.request as request import http.cookiejar as cookiejar import re import os import smtpl ...
- python判断火车票座位代码_Python火车票代码
前言:我想在源文章里加入下面一段来着,但是实在加不上,报什么405,造成安全威胁,不好意思哈各位,这么点内容还另起一章实在不好意思哈. 千万别一直挂着会封ip的,别问我怎么知道的,我不想说T_T 代码 ...
- python 之 Qt Designer 高铁火车票查询工具
一.制作UI界面 创建一个widget,从Widget Box工具箱中拖拽3个label.3个line Edit.1个Push Button.1个tableWidget.修改控件名后效果如下图,保存并 ...
- 基于 Python 的 tkinter 模块制作的名人名言查询工具
简介:本文主要介绍如何用 Python 内置的 tkinter 写一个查询工具. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多 ...
- 判断火车票座位-Python123编程题库答案-Python从入门到精通挑战台
判断火车票座位 类型:流程控制 ...
- python判断火车票座位号分布图_火车票座位号分布图图解(是否靠窗)
你知道你买到的硬座火车票是坐哪个位置的吗?小编收集了一个让你一目了然的图,揭露了火车票座位的秘密,让你知道你的车票座位号码是靠窗的还是靠近过道的,还是三人座位被夹在中间的! 火车靠窗座位号分布图 乘坐 ...
- python实现火车票查询_Python3 实现火车票查询工具
项目简介:使用 Python3 抓取 12306 网站信息提供一个命令行的火车票查询工具.通过该项目的实现,可以熟悉 Python3 基础及网络编程,以及 docopt,requests,pretty ...
- python刷火车票_Python3实现火车票查询工具
Python 实现火车票查询工具 一. 实验介绍 通过python3实现一个简单的命令行版本的火车票查询工具,用实际中的例子会更感兴趣,不管怎么样,既练习了又可以自己使用. 1. 知识点: Pyth ...
- 有人用python抢到过吗_再不看就晚了,我用Python抢到了回家的火车票!
原标题:再不看就晚了,我用Python抢到了回家的火车票! 不知不觉,一年一度的春运抢票大幕已经拉开,想快速抢到回家的车票吗?作为程序员,这些技术手段,你一定要知道. 为了让大家更快捷更便利的抢火车票 ...
最新文章
- App3种开发方式的优劣分析:原生、混合和H5
- python性能分析
- DotNetNuke各项业务外包
- mysql5.7.17配置_mysql-5.7.17-winx64的安装配置
- 使用Cloud SQL的Google App Engine全文搜索
- c语言程序设计主编张玉生教材答案,清华大学出版社-图书详情-《Visual Basic程序设计实验指导》...
- linux open出现乱码,OpenStack 数据库中文乱码问题
- 《推荐系统实战(二)》音乐推荐系统(数据清洗、召回、排序)
- 中国武侠片的50条爆笑定律
- NYOJ题目171-聪明的kk(dp)
- js将华氏度转为摄氏度
- android der 编码,关于android:使用现有DER / PEM密钥的Javascript中的RSA加密
- echarts自定义legend图例和tooltip默认提示文字
- Flutter高仿微信-第52篇-群聊-清空聊天记录
- react and reduct 学习手记3
- 有关tty hangup
- 阿里:不清除35岁以上的P8员工!
- docker镜像使用及连接
- 车牌识别--倾斜矫正
- 激光共聚焦显微镜测量技术在汽车工业上的应用
热门文章
- win10系统cpu内核或逻辑核心缺少缺少,解决办法
- Python 爬虫监控女神的QQ空间新的说说,实现秒赞,并发送说说内容到你的邮箱
- 内容安全策略(content-security-policy)
- 透过 AI 技术解读人的行为 研究开发回声定位
- 服务器被攻击显示,怎么查看服务器被攻击
- 为什么数学不好,和语文有关系?
- winedt103系统找不到指定文件_latex排版(CTeX winEdit输出“系统找不到指定的文件”的终极解决办法)...
- fiddler电脑抓包和HttpCanary(小黄鸟)手机抓包教程
- 由于计算机启动了配置文件,提示由于启动计算机时出现了页面文件配置问题解决方法...
- 机器人理论简介—— 台湾交通大学机器人学公开课(一)