马上就过年了!你买到回家的票了吗?Python给你24小时抢票!
off999 2024-09-27 13:47 33 浏览 0 评论
转眼间,又快到了一年一度数以几十亿计的人口迁移时间了,你买到过年回家的票了吗
除了高铁管家、智行火车票、携程、去哪儿等“专业”抢票,连美团和京东这些也开始“不务正业”的加入抢票软件的大军,朋友圈、微信群里惊现各种点击加速抢票的链接,通过其他人点击加速抢票,大家都想不花钱抢票,估计大多数人都没抢到,这只是商家宣传自己的噱头,主要目的还是要用户花钱买加速包,即使用户花了很多钱,达到“光速”抢票,这也只是一个概率问题,也不一定能抢到票。
而且第三方抢票软件很不安全,可还记得2018年12月月底网上流传的60万账号,410万联系人信息,这些数据是从第三方泄露出去的,所以说还是用官方工具购票为好。
这里说一下我对加速抢票的理解,正常购票发送请求需要服务器响应,人工一次又一次的刷新页面,刷新时间间隔和服务器响应时间会直接影响到购票。12306使用CDN内容分发网络,由中心平台统一调度和管理。CDN分布在全国各地,用户购票时,会连接最近的可用的CDN,这会降低网络拥堵,提高用户响应速度。抢票软件就是找到附近所有可用的CDN,在持续不断的刷新页面时会不断的换CDN,直到抢到票为止。在抢票高峰期,抢票软件多了,普通用户就很难刷新出页面,等页面刷新出来,也就没票了。
所以,网上有大神自己写了一个抢票工具,首先祭出大神的项目地址 https://github.com/testerSunshine/12306,以示感谢。据说,该大神也是因为过年回家买不到票,“一怒之下”写了这个项目。该项目购票流程如下图:
这里话不多说,先上效果图,有图才有真相(ps:这里尝试预定1月30号从武汉到上海的车票,余票只有1张,一下子就成功了)
大神的项目只能运行在python2.7,且小白用户可能连环境都弄不好,更别说使用它抢票了。本着好东西不能浪费的精神,花了两天时间,将此项目从python2.7升级到python3.7,并增加微信通知的功能,目前已经踩了很多坑,可能还有一些坑没踩出来,欢迎各位帮忙踩坑。目前已将该项目打包,小白用户可以直接使用。欢迎去我的github上下载,地址:https://github.com/leeyoshinari/12306
使用方式
以管理员身份运行命令提示符,一定要以管理员身份运行,然后进入到项目所在的文件夹下,如图所示
运行下面命令
getTicket.exe --username 123456 --password 123456 --departure_date 2019-01-15 --from_station北京 --to_station上海 --train_typeG, D, O --seat_type 二等座 --is_by_time False --train_no G1722, D3025 --departure_time 00:00--arrival_time 23:59 --ticket_people 张三 --is_more_ticket True --notification 2 --receive_wechat 张三 --send_msg_interval 0 --ticket_black_time 5 --is_auto_code False --rkusername 123 --rkpassword 123 --order_model 2 --open_time 07:00:00
参数说明:
--username 12306账户用户名,必须
--password 12306账户密码,必须
--departure_date 出发日期,必须
--from_station 出发地,必须
--to_station 目的地,必须
--train_type 列车类型,G为高铁,D为动车,O为其他火车,默认为所有列车
--seat_type 座位类型,默认为动车或高铁二等座
--is_by_time 是否按时间选择车次,True为按时间选择车次,False为指定车次,默认为False
--train_no 指定购买的车次,如果is_by_time为False,此参数必须
--departure_time 最早出发时间,如果is_by_time为True,此参数必须,默认为00:00
--arrival_time 最晚到达时间,如果is_by_time为True,此参数必须,默认为23:59
--ticket_people 乘车人,12306账户已有的乘车人的名字,必须
--is_more_ticket 当余票数小于乘车人数,是否提交,True为删除乘车人和余票数一样后提交,False为不提交,默认为True
--notification 信息通知方式,0为不通知,1为邮件通知,2为微信通知,默认为2
--receive_wechat 将信息发送到指定好友,如果notification为2,此参数必须
--send_msg_interval 每隔多长时间将查询状态信息发送给微信好友,单位为秒,主要预防微信登陆状态失效,0为不发送信息,大于0为间隔时间,默认为300。尽管如此,微信登录状态仍有可能失效,如果间隔时间太短,会被骚扰,因此建议使用邮件
--ticket_black_time 僵尸票关小黑屋时间,单位为秒,有些车次查询剩余票只有1张或2张,但就是买不到,此类票为僵尸票,为避免影响程序购买其他车次的票,默认时间为5s
-- is_auto_code 是否自动识别验证码,由于12306恶心的验证码,要想自动识别,需要注册若快账号,并充值,注册地址:http://www.ruokuai.com/client/index?6726,充值很便宜,5块钱就够玩很长时间了。True为自动识别,需注册账号,False为人工识别,默认为False。(ps:在登陆时会有验证码,部分情况下,点击预定按钮后,可能还会有一个验证码,而且在查询过程中,登陆状态很可能失效,这时如果查询有票,是无法自动预定成功的,如果票很难买,还是建议使用自动识别验证码功能,否则很难预定成功。这里不是给若快打广告,此参数可以设置为False。如果有其他识别12306验证码的工具,可以交流交流。此功能暂未调试,请尝试使用)
--rkusername 若快账号,如果is_auto_code为True,此参数必须
--rkpassword 若快密码,如果is_auto_code为True,此参数必须
--order_model 订票模式,分为预售和捡漏两种模式,1为预售模式,2为捡漏模式,在预售模式下,订单刷新时间间隔为0.1-0.5s,在捡漏模式下,订单刷新时间间隔为0.5-3s,默认为2。建议不要使用预售模式,小心你的账号和IP被12306关小黑屋
--open_time 预售放票时间,如果order_model为1,此参数必须
注:以上所有“必须”的参数,必须要传参,否则会报错。
说明:您输入的12306用户名和密码只用来登陆12306官网,只会存储在本地,不会存储到其他任何地方。您输入的所有参数会存储在12306\config\ticket_config.yaml文件中,建议买到票后,删除该文件。
下面是给“懒人”准备的输入参数,其他参数均采用默认配置
getTicket.exe --username 123456 --password 123456 --departure_date 2019-01-30 --from_station 武汉 --to_station 上海 --seat_type 二等座 --train_no G1774,D3008 --ticket_people 张二, 张三 --receive_wechat 张二, 张三
注:以上除汉字以外的所有字母和符号必须在英文输入法下输入
如需查看帮助信息,可在命令提示符中输入getTickets.exe -h
进群:960410445 即可获取书十套PDF!
订票成功后,程序会停止运行,此时会以指定的方式通知您,然后务必及时登陆12306官网,在“未完成订单”里查询订单信息,并完成付款
由于12306官网可能会采取某些策略,这会导致程序在运行时报错,请持续关注此微信公众号或github获取最新的版本。
在使用中,如果有任何问题,欢迎在github上进行反馈,或直接在微信公众号里反馈,一般情况下我都会回复的。
此项目也只能增加您买到票的概率,不保证一定买到票。如果使用中您的账号或IP不幸被12306关小黑屋,此项目概不负责。不过放心,基本上不会被关小黑屋
购买火车票,还是12306最靠谱,请大家尽量通过12306官网购票
此项目仅允许学习交流使用,切勿作为商业用途
最后,希望大家再看到有人在朋友圈或微信群里发帮抢火车票的链接,直接把这篇文章扔过去,以帮助“迷途”中的孩纸,不再让那些商家耽误回家的行程
相关推荐
- ip检测网站(ip地址测试)
-
IP检测工具(IPNetChecker)V1.5.2是一个简易实用,功能强大的网络监控软件,使您可以检查互联网和局域网上的IP主机的网络状态。IP检测工具(IPNetChecker)V1.5....
- 云电脑app哪个好(手机云电脑app哪个最好)
-
答:以下是一些比较好的云电脑应用程序推荐:1.AnyDesk-支持Windows、MacOS、Linux、Android和iOS,可用于远程访问和控制PC或移动设备。2.Splashtop...
- 怎样注册邮箱163免费(怎样注册邮箱163免费账号)
-
一、工具:电脑(联网)、浏览器二、操作步骤:【1】打开浏览器,找到“163邮箱”,点击。【2】点击右边的“注册”。【3】网站默认注册手机号码邮箱,填写信息,点击“注册”。若不想泄漏手机号码或不想使用手...
- 微软surface pro 6(微软surface pro 6可以扩容吗)
-
SurfacePro6的接口包含:1个标准尺寸USB3.0端口,3.5mm耳机插孔,MiniDisplayPort,1个SurfaceConnect端口,Surface专业键盘盖端口,microSDX...
- 电源已接通未充电怎么回事(电源已接通未充电 真正解决办法)
-
原因分析:出现这样的原因有可能是长时间没有充电,导致电池的内部电量耗完后亏电严重,只是电脑充电的保护,不让过充而已,只要设置一下电池选项一般就可以解决问题了。解决方法:1、关机,拔下电源,拔出电池,...
- 华为云会议app下载(华为云会议下载)
-
华为云会议可以在PC客户端或者手机客户端上一键发起立即会议,1秒创会。然后在会中选择企业通讯录中的人加入,系统会自动呼叫这些与会人,接听后即加入会议。ZOOM是一个云会议服务平台,为客户提...
- 路由器重置方法(路由器重置方法详细步骤)
-
路由器靠近WAN口边上的有一个小孔用于路由器的重置,路由器配置完成后,我们可能会忘记他的用户名或者是密码,那么我们可以把它恢复到出厂设置,再靠近万口或电源之间,有一个小孔,用一个尖锐的金属查一下大约五...
- 100个有效qq号以及密码(有效qq号和密码大全)
-
如果你的电脑知识好的话,不妨用一些复合密码!SHIFT+一些特殊符号,字母,数字!虽然麻烦了点,但总比被人盗号了的好,是吧!最好还用手机绑定一下,这样的话方便改密码也不怕QQ被盗了哦。。。QQ密码找回...
- win10家庭中文版下载官网(windows10家庭中文版下载)
-
你好,激活Win10家庭中文版的方法:1.购买正版Win10家庭中文版激活码,然后在计算机上输入激活码,即可完成激活。2.如果您已经安装了Win10家庭中文版,但尚未激活,可以通过以下步骤激活:-...
- 电脑截图在哪里找(电脑截图在哪里找图片win10)
-
截图默认会保存在电脑的剪贴板中,可以通过以下步骤将其保存到本地:1.打开任意一款图片软件,如Paint、Photoshop、Word等。2.按下键盘上的Ctrl+V,或者在软件菜单栏中选择...
- 电脑里一堆microsoft visual
-
按照系统向下兼容原理,保留2010就可以了.1)你安装的时候是不是把创建快捷键的选项框都没选上,导致在开始菜单中没有找到相应的链接?2)去你的安装目录下,找到Microsoftvisualc++...
-
- windows无法识别usb(windows无法识别usb设备)
-
Windows无法识别USB,解决办法如下右键开始菜单打开设备管理器,在通用串行总线控制器中右键点击设备选择“卸载”,完成后重新启动计算机即可解决问题。这有可能是在组策略中禁用了USB口,可以使用快捷键【Win+R】运行gpedit.msc...
-
2025-11-10 11:51 off999
- bios能看到硬盘 开机找不到硬盘
-
bios里可以看到硬盘,说明硬盘已经被主板识别。进系统找不到,可能硬盘没分区,或者硬盘是动态磁盘,还没有导入或激活。按win+r,输入diskmgmt.msc回车,就打开磁盘管理了,在里面可以给新硬盘...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
