前言
又到了一年一次的春节回家抢车票的时候了
虽然刚刚元旦放假回家了一趟
但现在又要为过年回家准备车票了😂
确定回家日期
问了下周围的同事
他们都说2月5号回去即提前5天回去
那我也5号回去吧
确定车次开始抢票
我先是通过这种方式购票的 待出票的那一刻 就开始了买票操作
结果预料之中 没有抢到
毕竟千千万万的人都在抢 抢不到也在情理之中 意料之内
为什么总是抢不到
-
抢红包 抢不到
-
购买茅台 抢不到
-
买车票 也抢不到
在当今这个僧多粥少的时代
按照正常的方式
能达到愿望的几率很渺茫
因为没钱没资源没背景嘛
在这种情况下怎么才能抢到票呢
作为程序猿
当然要充分利用各种软件工具啦
抢票工具
这篇文章先介绍下抢票工具
后续的文章再介绍下 抢红包和抢茅台的工具
python源码
https://gitee.com/pingfanrenbiji/ticket-12306
没有python3环境的请自行安装
安装依赖
-
通过pycharm编译器打开并按照依赖
或者
-
通过命令按照依赖
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
配置文件
ticket-12306/TickerConfig.py
需要配置的配置项:
出发日期
预售放票时间
购买车次
触发城市
到达城市
座位类型
乘车人姓名
12306登录账号(tk、RAIL_DEVICEID)
获取12306登录账号
打开12306购票网站、右键检查、点击登陆
-
tk
-
RAIL_DEVICEID
注:获取RAIL_DEVICEID的值
加入CDN
python3 run.py c
开始抢票
另开一个窗口 抢票
python3 run.py r
这样就在一直抢票了
建议开3个抢票窗口
开的太多 担心会被12306封IP
如果有别人退票的话 那么你就可以抢到了
若是抢到了车票 就可以在12306-个人中心-火车票订单-未完成订单中
看到这笔未支付订单了
支付一下 就买到这个票了
配置参数说明
配置文件中也有说明
刷票模式
-
刷票
-
候补+刷票
先是预售 预售完了之后 没票了 有人退票才可以捡漏
候补的含义就是 没票了 通过12306平台帮忙抢票
候补成功也就是抢票成功
如果软件候补成功则会停止抢票,发出邮件通知
但是不会影响你继续捡漏
如果这个时候捡漏捡到的话,也是可以付款成功的
候补车票的前提
如果是候补车票
需要通过人证一致性核验的用户及激活的“铁路畅行”会员可以提交候补需求
请您按照操作说明在铁路12306app.上完成人证核验
抢票成功通知
邮箱通知
微信公众号通知
-
使用文档
http://sc.ftqq.com/3.version
-
登陆github获取secret
http://sc.ftqq.com/?c=code
-
绑定微信
-
点击图1中的发送工具发送
微信就可以收到通知
下单模式
-
预售
整点刷新
刷新间隔0.1-0.5S 然后会校验时间
比如12点的预售,那脚本就会在12.00整检票,刷新订单
-
捡漏
捡漏的刷新间隔时间为0.5-3秒,时间间隔长,不容易封ip
代理
-
作用
防止请求12306的ip被封掉
比如 当前局域网出口ip 为ip1 代理ip为ip2
若开启了代理
则ip1 转发到 ip2 由ip2访问12306
若开启了代理池
则ip1转发到 代理池中的任意一个ip 再访问12306
-
配置方式
-
获取出口IP
curl http://www.cip.cc/
或者
浏览器直接访问
http://httpbin.org/ip
-
获取可用的代理池
https://gitee.com/pingfanrenbiji/proxy_pool
模拟浏览器请求,防止被被请求方拦截
每次请求都会重新设置下user-agent
表示不同的浏览器请求的12306
防止被拦截
请求频率设置
2次http请求之间的时间间隔是0-1秒之间的一个随机数
防止频繁的请求12306 被拦截
结语
我的票也还在抢😂
也祝愿大家都能抢到心仪的车票