codecamp

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

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏
下载W3Cschool手机App,0基础随时随地学编程>>戳此了解

导语

在之前的“教你如何用Python实现抢火车票功能(上)、(中)”两文中我们基本完成了项目要求的功能,今天我们来完成项目的最后一部分内容即将两项功能集成到一个Demo,供所有专业/非专业人士更加方便地使用。

本期任务

完成项目内容4。

开发工具

python版本:3.5.4

chromedriver_win32版本:2.3.4

chrome版本:65.0.3298.4

相关文件

百度网盘下载链接: https://pan.baidu.com/s/16jUPfpAY90sGmqV0PbqszQ 

密码: 6ntn

项目内容4

相关模块:

requests模块、splinter模块、PIL模块以及python自带的一些基本模块。(相关模块均使用pip安装即可)

相对之前版本的变动:

(1)可视化界面;

(2)车次不再使用纯数字,可直接输入需要抢票的车次名(如G163),使用更加方便;

(3)暂时废除了邮件提示功能(太不稳定了)。

具体原理请参考源代码!

环境搭建:

安装python(添加到环境变量)并pip安装相关的第三方库,最后将相关文件中提供的chromedriver.exe文件放在python安装文件夹中的Scripts文件夹内。

使用方式:

在cmd窗口运行即可。

界面展示:


最终代码:

见相关文件。

使用演示

(1)查询功能


(2)抢票功能


需手动输入验证码:


抢到票之后我们需要手动打开12306官网或者官方APP在未完成订单中进行支付后购票:

使用说明

(1)乘客名输入格式为:

xxx(学生)或者xxx,其中()使用英文输入法;

多名乘客时请输入xxx,xxx,xxx,其中,使用中文输入法。

xxx代表人名!!!

(2)日期输入格式为:

year-month-day,例如2018-01-20。

(3)类型输入格式为:

字母a代表全部;

字母g代表高铁;

字母d代表动车;

字母k代表快速;

字母t代表特快;

字母z代表直达。

注意字母均为小写。

(4)车次输入格式为:

数字0代表任意车次,其他按照正确的车次名输入即可,如G163等等。

若输入的车次不存在,则系统抢票时将抢任意车次。

(5)其他:

输入正确的用户名、密码和出发地与目的地即可。

更多

(1)这只是V1.0版本,还有很多缺陷和不足之处,为调试和修改方便,且避免程序出现其他意外的错误,暂时不提供.exe版本;

(2)此版本至2018-01-12日为止是有效的,若日后12306官网有较大更新,则此代码将仅供参考;

(3)尽量每年抢票季对版本进行更新升级,供抢票回家的小伙伴使用;

(4)若发现代码有错误之处或者其他问题请后台联系我。

Python3实现抢火车票功能(中)
Python3制作王者荣耀出装小助手
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }