Python3实现抢火车票功能(上)
本文转载至知乎ID:Charles(白露未晞)知乎个人专栏
下载W3Cschool手机App,0基础随时随地学编程>>戳此了解
导语
又是一年春运,很多地方的火车/高铁票依旧一票难求~~~于是,大家应该明白我推出这个小项目的缘由了吧~~~
项目内容
(1)利用python实现火车/高铁票查询功能;
(2)利用python实现抢火车/高铁票功能;
(3)对上述两项基本功能进行优化;
(4)最后将两项功能集成到一个Demo,供所有专业/非专业人士使用。
PS:
本项目不提供细致入微的教学(如有疑问可后台私信咨询),仅讲解主要思路、环境搭建、使用方式以及最终代码(含详细注释)。
本期内容
实现项目内容中的前两项。
开发工具
python版本:3.5.4
chromedriver_win32版本:2.3.4
chrome版本:65.0.3298.4
相关文件
百度网盘下载链接: https://pan.baidu.com/s/19jgSjtuxslE-UUK3kg3hpQ
密码: rjv6
项目内容1
相关模块:
requests模块、prettytable模块以及python自带的一些基本模块。(相关模块均使用pip安装即可)
主要思路:
构建相关的URL请求,并对返回的JSON数据进行解析处理最后显示即可。
其中值得一提的有:
(1)需要对特殊的URL发送请求来获得输入车站的字母代号;
(2)车票余量查询的URL有两个,任意某时刻两个URL中仅有一个是有效的。
环境搭建:
安装python3.5.4(添加到环境变量)并pip安装相关第三方库即可。
使用方式:
使用演示:
最终代码:
见相关文件。
项目内容2
相关模块:
splinter模块以及python自带的一些基本模块。(相关模块均使用pip安装即可)
主要思路:
其实无非是利用splinter库,来实现模拟登陆、查询、订票等操作。换句话说只要找到相关的控件名称即可,具体流程可以参考相关文件中的源代码,我都做了详细的注释。
值得一提的有:
(1)出发地和目的地不是直接输入的页面值,需要在cookie中查出;
(2)验证码需要手动输入。
环境搭建:
安装python(添加到环境变量)并pip安装相关的第三方库,最后将相关文件中提供的chromedriver.exe文件放在python安装文件夹中的Scripts文件夹内。
使用方式:
在下图所示的代码段中填写相关信息:
确认无误后在cmd中运行即可。
其中cookie值查找方式如下图:
使用演示:
输入验证码后其余操作均将自动进行:
抢到票之后我们需要手动打开12306官网或者官方APP在未完成订单中进行支付后购票:
最终代码:
见相关文件。
下期预告
主要完成项目内容3。
更多建议: