python火车票查询工具tkinter_Python 实现一个火车票查询的工具
原标题:Python 实现一个火车票查询的工具
主要功能:
输入出发车站,到达车站,时间,然后返回所有的车次信息,和余票信息
支持输入附加选项查询不同的火车的类型,比如高铁,动车。
#查询上海到北京2017-04-25的高铁和动车的车票,-g -d 是附加选项 表示高铁和动车
python3 trains.py -gd 上海 北京 2017-04-25
运行结果:
1. 对12306网站买票过程抓包分析
点击查询之后,通过抓包发现返回了一个json的文件,查看这个文件,就是保存着具体车次的信息。抓包如下图所示。
请求的url 是:
GET /otn/leftTicket/query?leftTicketDTO.train_date=2017-04-20&leftTicketDTO.from_station=TJP&leftTicketDTO.to_station=TYV&purpose_codes=ADULT HTTP/1.1
发现这个请求使用的是get方法,然后传递了四个参数,一个是出发站,一个是到达车站,一个是成年人or学生,最后一个是时间。如下图:
但是有一个问题是,我输入的是天津到太原,但是这个却转换成了拼音的简称。必须要找到这个转换的字典是什么,这样才能正确的使用这个接口。
在网页的源代码找到这个文件,station_name.js 文件,如下图:
js文件的格式是,如下图,使用的话,必须要想用正则表达式处理一下:
2. 使用正则表达式处理这个js文件
使用正则表达式,将js 文件里面的车站名字和对应的简称提取出来,然后写入到一个station.py 文件里面,作为字典,程序运行的时候,将这个文件以模块的形式包含进去。
关于正则表达式,先占一个坑,以后在详细的写。
正则表达式的代码:
运行的时候:
# 将输出重定向到一个新的文件stations.py里面python3 test3.py > stations.py
3. 使用docopt 优雅的完成命令行的输入
docopt 是一个很优雅的处理输入的一个模块,docopt可以根据你写的文档描述,可以自动为你生成解析器,可以非常容易的为你的python程序创建命令行界面。http://www.jianshu.com/p/d2c7cbf21931
4. 主程序
4.1 处理url
4.2 输出
运行结果:
5. 使用prettytable模块 优雅的输出
from prettytable import PrettyTable
def pretty_print():
trains=[[11,12,13,14,15,16],[21,22,23,24,25,26],[31,32,33,34,35,36]]
header='list1 list2 list3 list4 list5 list6'.split()
pt=PrettyTable()
pt._set_field_names(header)
for train in trains:
pt.add_row(train)
print(pt)
pretty_print()
文章来源:简书
《Python机器学习》是炼数成金《机器学习》课程的姐妹篇,将大幅度补充《机器学习》中没有涉及,但大家又非常感兴趣的内容,详细地讲解剪枝过程,以及之前没有涉及的回归树,讲述机器学习的主流算法在python下的实现等等!返回搜狐,查看更多
责任编辑:
python火车票查询工具tkinter_Python 实现一个火车票查询的工具相关推荐
- python实现火车票查询工具_Python 实现一个火车票查询的工具
原标题:Python 实现一个火车票查询的工具 作者 sexycoder 本文转载自简书,转载需授权 使用 python 实现一个查询火车票的小工具 主要功能: 输入出发车站,到达车站,时间,然后返回 ...
- 用python的tkinter和爬虫制作一个天气查询窗口
翻开从前的代码,发现有段时间对 tkinter 图形化开发界面特别感兴趣,所以在这里和大家分享一下,做的一个小小的实例. 那么如何快速的创建一个GUI程序,只需要先导入Tkinter模块,创建一个窗口 ...
- Hibernate的事务级别控制与查询对象的API(Query查询与Criterial查询+离线查询)
1.事务级别控制 可以在Hibernate的配置文件中对事务进行配置.配置文件中,可以设置事务的隔离级别.其具体的配置方法是在hibernate.cfg.xml文件中的<session-fact ...
- python识别火车票二维码_Python 实现火车票查询工具
一.实验简介 当你想查询一下火车票信息的时候,你还在上 12306 官网吗?或是打开你手机里的 APP? 下面让我们来用 Python 写一个命令行版的火车票查看器, 只要在命令行敲一行命令就能获得你 ...
- 一个可以查询全国火车票剩余票数的网址~以后回家不怕没座了~~
这是一个可以查询到全国火车票剩余票量的网址,进入网页后选择下方的余票查询即可. http://www.12306.cn/mormhweb/kyfw/
- 用Python做了一个法律查询小工具,非常好用
用Python做了一个法律查询小工具,非常好用 效果展示 准备工作 主要代码 哈喽兄弟,今天给大家分享一个Python tkinter制作法律查询小工具. 光爬虫大家也只能自己用用,就算打包了exe, ...
- 用Python编写一个ISBN查询工具,秒查图书信息
目录 1.引言: 2.正文: 3.实例分析: 4.总结: getnameformisbn.py 1.引言: 2.正文: ISBN查询工具通常用于图书管理.图书销售.图书收集和阅读等场景.以下是一些具体 ...
- java实现火车票查询_各位朋友,有人知道怎么用Java语言设计一个火车票购票系统吗?...
一.需求分析 1.设计题目:车票管理系统 用JAVA语言和数据结构知识设计设计车票管理系统.要求如下所述: 一车站每天有n个发车班次,每个班次都有一个班次号(1.2.3-n),固定的发车时间,固定的路 ...
- [Python爬虫]使用Selenium操作浏览器订购火车票
这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...
最新文章
- SpringCloud中父子pom的结构和写法
- win64环境下的一些配置
- 【缅怀妈妈系列诗歌】之八:妈妈,我不会忘记
- Android笔记 fragment的向下兼容
- 95-866-040-源码-吞吐量-提升吞吐的利器 MicroBatch
- cholesky分解_Time Series Analysis-1.2 LDL分解
- 国内国外最好的java开发论坛及站点 [转]
- mysql创建新用户并设置密码时报错:Your password does not satisfy the current policy requirements
- 数字图像处理 matlab 傅里叶变换及逆变换 余弦变换及逆变换(使用代码库)
- 国际化的locale类详解
- 谷歌浏览器翻译插件的安装与使用
- 又一百度杰出科学家离职,百度研究院成中国AI的黄埔军校
- SSO的实现和参考工具类
- 前后端开发实用网站推荐
- 动态时间规整算法DTW
- 电力变电站三维可视化
- 【Node.js】之项目准备和首页
- 如有定义int a=128; 则输出语句printf(“%o”,a);的输出结果为?。
- python url编码-----urllib的urlencode和quote和quote_plus
- py语法06-组合数据类型
热门文章
- 计算机毕设Python+Vue医疗门诊管理系统(程序+LW+部署)
- 你有遇到客户给你发假水单的事吗?最后都怎么识别出来了?
- DLC430SK考勤机接线方法
- php格式图片怎么打开方式,php格式文件打开的四种方法
- 阿里云服务器报错: Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: request...
- 历年计算机一级考试原题,全国计算机等级考试一级历年上机真题.doc
- 区块链“不可能三角难题”解决了
- 2021年中国乙二酸产能格局及进出口贸易分析:华峰化工己二酸产能全国排名第一[图]
- 项目管理实践篇(二):总结项目经历
- MySql Povit,[MySQL|Postgresql] Pivot 通用技巧