这次回家忘记提前买票了,到前一周才发现买不到票了,刚好在github上看到抢票小助手,废话不多说,开始使用。
准备工作
该项目使用python编写 为避免不同python版本冲突,我们使用conda搭建虚拟环境
1 | $ conda env create -n 12306 python=3.7 |
模型下载
具体说明请查看小助手README文档
1 | 1. 模型下载链接:https://pan.baidu.com/s/1rS155VjweWVWIJogakechA 密码:bmlm |
下载好模型放入12306抢票助手项目根目录
进行账号配置
对TrackConfig进行配置,由于作者已经注释的非常详细了,所以跟着配置就好了。
下载12306 手机客户端并进行人证审核
开始抢票
可以进行刷票+候补票了,第一次配置错了,导致一直提交失败,请稍后再试。车次跟日期不匹配。第二次直接对着12306客户端进行车次的设置,后来发现抢到一定的时间总是返回302,推测应该是跟ip有关,然后开启proxifier切换ip,每次请求都是成功的,但是每次不到一分钟就抢到了,后来同事提醒直接去12306客户端买候补就好了,才发现原来候补根本不需要抢很多。到10点多的发现两个小时 的时间,50多快(代理ip费用)的钱打了水漂。于是我直接去12306手机app买了两张候补票,均成功买到座位。至此到2点多,折腾了6个多小时的“测试”宣告结束。
发现
在跑这个项目的过程中发现,无非是调用12306的相关接口进行登陆,通过获取google浏览器的cookie或者账户密码登陆的方式。在登陆的过程中使用训练好的模型对验证码进行解析,目前看来成功率为50%,然后访问指定的页面进行模拟提交。