趣玩Python——如何帮女朋友快速抢票

简介:

又到了半年一度的考试季,对于那些翻山越岭外出求学的莘莘学子们,相比于各显神通的考试,更紧张的莫过于买一张回家的车票,相信很多群最近都被下面这样的图占领了。

如今,随着 12306 的抗压能力越来越强,各种第三方抢票软件也是层出不穷,什么智行火车,携程旅游,就连官方都推出的了加速服务,这就导致了大量黄牛都开始感叹:这年头的生意不好做咯!

而且现在各家的抢票方式都是八仙过海,各显神通,这家让你消费买加速包,那家让你疯狂推销,以至于才出现了上述加速小程序的疯狂炸群(微信小程序恐成最大赢家)。

作为一个苦逼的学生党,花钱买加速包不大可能,毕竟买加速包的钱都快赶上半张火车票了;让我疯狂用小程序炸群也不大可能,毕竟关系到自己的社交信誉,而且现如今的群成员各个都是大爷,不发红包不点加速。

那么难道就没有一种 geek 风的抢票软件吗?

12306 购票小助手

想找各种骚操作的软件,第一想法自然是去最大的同性交友网站啊,无意中发现了一个名为 12306 购票小助手的项目,试了下竟然真的抢到了票,项目已经开源,地址 👉https://github.com/testerSunshine/12306

思路图

思路图

作者也很用心的把程序的思路给画了出来,我们可以简单的看一下。整个思路其实就是模拟一个正常人购票的方式,首先查询下车票剩余的票数,如果有座位提交订单,出现验证码这识别验证码,随后就循环点击提交按钮,这里作者就做了很多的条件判断,比如出现异常则重新查询,提交订单失败也重新查询,直至获取订单成功。订票成功之后还有一个通知机制,即发送到你的邮箱里。

使用

说了这么多,应该如何使用呢?详细的可以参考作者的 README,这里我用最简单的方式讲述下需要注意的地方以及如何使用用这个购票小助手抢到票:

注意事项

  1. python 版本为2.7.10-2.7.15
  2. 推荐使用 MacOS/Linux
  3. 使用时一定要以 root 用户运行

准备工作

  1. 注册若快图像识别http://www.ruokuai.com/client/index?6726,记住用户名和密码,然后充值 1 块钱兑换 2500 快豆即可,该步骤是为识别验证码做准备。
  2. 下载项目:执行git clone https://github.com/testerSunshine/12306.git将代码下载至本地。
  3. 安装 Python2.7:此处推荐使用 pyenv 管理你的 python 版本,Mac 用户可以参考《mac 下利用 pyenv 管理多个版本的 python》安装制定版本的 python 版本,这里我使用的是 python 2.7.15
  4. 安装依赖库:命令行进入项目根目录后,执行sudo python2 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

项目配置

配置文件

上图中的ticket_config.yaml是运行整个项目最重要的配置文件,所有的购票信息都在该文件中,比如车票时间,12306 账号密码,乘车人信息,通知邮箱等等,文件中都有详细的注释,根据要求进行更改即可。

把这个配置文件按你的需求填写完毕之后,就可以开始运行了。

开始抢票

命令行进入项目根目录后,执行sudo python run.py即可开始抢票了。

如果抢到票了,就会输出类似下面的 log:

车次: DXXX 始发车站: 南京南 终点站: 合肥南 二等座: 16
设置乘车人数为: 1
查询到有余票,尝试提交订单
车票提交通过,正在尝试排队
排队成功, 你排在: 0位, 当前余票还剩余: 16 张
不需要验证码
提交订单成功!
排队等待时间预计还剩 -4 ms
恭喜您订票成功,订单号为:XXXXXX, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!

然后再登录 12306 的官方网站,访问‘未完成订单’即可看到你的购票信息了。

最后祝愿大家都能抢到回家的票!

相关文章
|
2月前
|
测试技术 数据安全/隐私保护 Python
大麦网抢票攻略:使用Python Selenium实现
大麦网抢票攻略:使用Python Selenium实现
|
11月前
|
测试技术 Android开发 Python
python | 大麦网抢票(移动端)
上篇文章写到了使用windows11打开安卓应用,那么使用python来抢大麦网票应该也是可以的吧。库使用的是`pyautogui`。
875 0
python | 大麦网抢票(移动端)
|
4月前
|
API Python
Python实现大麦网抢票的四大关键技术点解析
随着互联网的普及和发展,线上购票已经成为人们生活中不可或缺的一部分。然而,在抢购热门演出门票时,往往会遇到抢票难、抢票快的问题,有时候一秒钟的延迟就意味着与心仪的演出擦肩而过。为了解决这个问题,技术爱好者们开始探索利用Python多线程技术来提高抢票效率。本文将介绍Python实现大麦网抢票的四大关键技术点,帮助读者了解抢票脚本的核心原理,并通过示例代码详细说明实现过程。
|
4月前
|
监控 安全 Java
【python实操】马上毕业了,你还不懂什么是守护线程、线程、进程?(附12306抢票程序-源代码)
【python实操】马上毕业了,你还不懂什么是守护线程、线程、进程?(附12306抢票程序-源代码)
67 0
使用Python编写一个多线程的12306抢票程序
使用Python编写一个多线程的12306抢票程序
|
数据采集 机器学习/深度学习 NoSQL
Python 抢火车票神器,支持候补抢票
Python 抢火车票神器,支持候补抢票
|
数据采集 机器学习/深度学习 NoSQL
火车票被秒光,别慌!快用Python来抢票!
火车票被秒光,别慌!快用Python来抢票!
|
数据可视化 Linux Python
趣玩 Python 之绘制基本图形
趣玩 Python 之绘制基本图形
358 0
趣玩 Python 之绘制基本图形
python实现简单的抢票程序
python实现简单的抢票程序
|
存储 Python
Python 实现的 12306抢票脚本
12306抢票脚本 本脚本使用一个类来实现所有代码,大体上分为以下几个模块及其步骤: 初始化对象属性(在抢票前进行的属性初始化,包括初始化浏览器模拟对象,个人信息等)。 建立模拟浏览器,模拟浏览器进行cookie等存储。
4858 0