Python3实现抢火车票功能(上)

由 rowline 创建,Carrie 最后一次修改 2018-09-15
本文转载至知乎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。

以上内容是否对您有帮助:

二维码
建议反馈
二维码