Python抢票程序优化,可以选择车次和座次

本文介绍了对Python自动抢票程序的优化,包括添加车次选择和座次选择功能。详细阐述了从自动登录、查询到提交订单的流程,并提供了参数修改说明,帮助用户更好地配置和使用抢票程序。邮件通知、处理网络异常及程序配置的注意事项也进行了讲解。
摘要由CSDN通过智能技术生成

   阅读文本大概需要 5 分钟。

pk 哥在元旦前写了一篇关于自动化抢票的程序 用Python抢火车票加邮件通知,同时建了一个火车票助力群,本来只是写着玩玩,增加抢票的另一种途径而已。没想到短短几天,群里加了将近 150 名小伙伴,这也预示春节的火车票真是一票难求啊。pk 哥写这个程序的初衷是因为去年我的返程票是通过手动不停的刷新点击抢到的,我想着能不能通过程序自动化去刷新并点击抢票,所以就有了这个 Python 抢票程序。

毕竟这个程序是 Python 模拟手工去操作浏览器的,所以会因为各种网络或者其他因素导致程序终止,群里反馈最多的就是增加车次选择功能和座次选择功能。本文主要讲解这两个优化点,群里也有很多小白也在用这个程序,所以本文会对一些详细的参数配置进行说明。

自动抢票流程

首先,梳理下本次优化后的抢票流程。

  1. 自动启动浏览器,自动化输入程序里设置好的 12306 的登录账号和密码。

  2. 自己手动输入验证码,图形验证码设别功能太复杂,涉及到人工智能的图像识别,自己做的话成功率不高,所以我这里让大家手动输入,输入验证码后手动点击「登录」按钮。

  3. 登录成功后页面会自动校验,确认登录成功后会自动跳转到查票页面。根据自己程序代码里输入的出发地和目的地进行查票。

  4. 根据自己输入的车次进行查询右边「预定」按钮是否高亮可点,不可点的话会一直点击「查询」按钮不断的刷新页面直到出现有票点击「按钮」按钮。

  5. 提交订单页面,选择乘客,选择座位类型,如果没有自己想要的类型,比如,二等座,页面会重新回到火车票查询页面,重新查询,如此循环。

  6. 抢到你想要的票后,提交订单,发送邮件,完成!

登录页面

这部分我把浏览器窗口最大化了,之前没设置全屏,大家电脑显示屏大小不一样,可能出现有些元素被遮挡无法点击。

登录之后可能会出现网络可能出现的问题的提示,估计是服务器的问题,这时手动点一下左上角的返回,一般就可以恢复正常,如果点一次还是这个提示,那就点两次吧。

查询页面

查询火车票页面,这个页面峰值时间时也会出现超时的提示,估计是访问的人数过多导致服务器异常导致的,有时候很快就能查到票,具体什么时候我也没找到规律。

这个我们也无法避免,程序会自动的帮我们刷新直到刷新出有票的页面,刷新频率:1 秒/次。

车次选择功能是大家比较关心的功能,之前是 order = 0 默认是全部车次,这次大家可以根据车次的位置输入相应的数字,比如要预定的车在第 5 行,你把 order = 5 就行,关于这些参数配置,下面会专门给大家列出来。

提交订单页面

提交订单页面程序会做两件事,第一个是根据你输入的乘客姓名进行选择,第二件事是根据是输入的座次进行判断,你想要的座次有票的话就会选择并提交订单,你想要的座次没票的话就会返回到上一级页面,重复查询车票,检查座次,如此循环,直到订到你想要的票。

邮件通知

邮件通知功能之前单独有写过一篇文章,大家如果不确定邮件通知功能是否有效的话可以单独把这部分源码拿出来,运行看看是否能发送成功&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值