新鲜出炉的12306防挂脚本,有需要的拿走
一年一度的“抢票运动会”又开始了,期间12306网站承受的压力越来越大,极不稳定。随着人们对互联网越来越熟悉,导致大量刷票软件的用户量猛增,大量的访问将12306快压垮了,以至于使用12306自家的刷票助手经常崩溃而无法继续刷票。作为一名“资深”的程序员,我无法忍受了,所以果断出手,写了一段js来防挂。
本来想简单的解决一下刷票自动挂的问题,后来想想写都写了,不如再增加几个有用的功能。
现在脚本的功能有:
- 防止自动刷票崩溃(挂掉后自动重新刷票)
- 自定义查询时间区间
- 自定义自动刷新时间间隔
- 突破5车次限制
- 可根据时间段、车类型刷所有满足的车次
废话不多说,直接上代码吧:
//记录等待时间
var waittime=0;//统计等待时间
function waitforRestart(){if(!$("#autoSubmit").prop("checked"))return ;if($("#query_ticket").text()=="停止查询"){waittime++;}if(waittime>10){$("#query_ticket").click();setTimeout(function(){waittime=0;if($("#query_ticket").text()=="查询") {$("#query_ticket").click();}},1000);}
}//注册回调方法
function callback(fun1,fun2){fun1();fun2();
}//添加乘车人
function addBuyer(name){callback($.showSelectBuyer,function(){$("#buyer-list li[p_value^="+name+"]").click();$.closeSelectBuyer();});
}//突破限制,添加车次
function addTrain(trainCode){$("#prior_train").append('<span name="prior_train-span" class="sel-box w80">'+trainCode+'<a class="close" href="javascript:" οnclick="$.removeSel(this,\''+trainCode+'\',4)"></a></span>');
}//添加优先席别
function addSeat(seat){callback($.showSelectSeat, function(){$("#seat-list li[name^="+seat+"]").click();$.closeSelectSeat();});
}
//勾选某些类型的车
function selectTrainType(types){
$("#_ul_station_train_code input").each(function(i,e){
$(e).prop("checked", false);
});
var typelist = types.split("/");
for(var i=0;i<typelist.length;i++){
$("input[value='"+typelist[i]+"']").prop("checked",true);
}
}//自定义查询区间
function addTimes(startTime,endTime){$("#cc_start_time").append('<option value="'+startTime.replace(":","")+endTime.replace(":","")+'">'+startTime+'--'+endTime+'</option>');$("#cc_start_time option:last").selected();
}//根据时间段、车次类型查询所有满足的车次。
function queryByTimeAndTrainType(){callback($.showYxTrain, function(){var yxTrainTimer = setInterval(function(){if($("#filterTic").length>0){$("#filterTic").prop("checked",true);$("#yxtrain_close").click(); clearInterval(yxTrainTimer);}},10);});
}
以上是提供了修改配置的方法,以下则根据需求自行配置,我们可以选定车次进行刷票,也可以根据时间段+车次类型刷该时间段内的某类车次。分开来说:
1. 根据车次进行刷票
具体操作:
- 打开12306网站
- 选定好车次方向和发车日期
- 筛选出要刷新的车次、乘车人、席做等,替换下面的内容
//==========================================
// 以下则根据需求自行配置:
// 乘车人、车次、席别
// 仅显示要刷的车次、查询区间、刷新时间
//==========================================//选择乘车人
addBuyer("张三");
addBuyer("'李四(成人)'");
addBuyer("'王五(学生)'");//手动添加车次,按优先顺序添加(轻松突破5车次限制)
addTrain("G100");
addTrain("G101");
addTrain("G102");
addTrain("G103");
addTrain("G104");
addTrain("G105");
addTrain("G106");
addTrain("G107");//添加优先席别,按优先顺序添加
addSeat("二等座");
addSeat("一等座");
//自定义时间区间
addTimes('07:00','08:10');
//勾选车次类型:G-高铁/城际,D-动车,Z-直达,T-特快,K-快速,QT-其他
selectTrainType("G/D");//自动刷新时间1s
autoSearchTime=1000;//收起订票助手
$(".up").click();//启动检测防挂
var timer = setInterval(waitforRestart,autoSearchTime);//开始刷票
if($("#query_ticket").text()=="查询"){var timer2 = setInterval(function(){if($("#auto_query").prop("checked") && $("#autoSubmit").prop("checked") && $("#filterTic").prop("checked")){$("#query_ticket").click();clearInterval(timer2);}},10);
}
将以上修改好的内容贴到浏览器控制台上(F12或者Ctrl+Shift+J)按回车执行。就可以自动开始刷票了。如果刷新请求timeout了,会由waittime记录超时等待时间,>10时则会自动取消刷新,1秒后重新开始自动刷票。
2. 刷新某时间段内的特定车次类型的票,如刷新09:30-12:15之间所有高铁+动车票
具体操作:
- 打开12306
- 选好车次方向和发车日期
- 确定时间段、车次类型、席坐,然后替换下面的内容
//==========================================
// 以下则根据需求自行配置:
// 乘车人、车次、席别
// 仅显示要刷的车次、查询区间、刷新时间
//==========================================//选择乘车人
addBuyer("张三");
addBuyer("'李四(成人)'");
addBuyer("'王五(学生)'");//添加优先席别,按优先顺序添加
addSeat("二等座");//手动设置查询区间
addTimes("09:30","12:15");//仅显示高铁+动车
$(".check[value='G']").prop("checked",true);
$(".check[value='D']").prop("checked",true);//仅显示时间段内的车次、仅显示有票的车次,二选一
//注意,如果选择了该项,则勾选的车次则无效了。
queryByTimeAndTrainType();//自动刷新时间1s
autoSearchTime=1000;//收起订票助手
$(".up").click();//启动检测防挂
var timer = setInterval(waitforRestart,autoSearchTime);//开始刷票
if($("#query_ticket").text()=="查询"){//仅查看勾选的车次$("#filterTic").prop("checked",true);var timer2 = setInterval(function(){if($("#auto_query").prop("checked") && $("#autoSubmit").prop("checked") && $("#filterTic").prop("checked")){alert("123");$("#query_ticket").click();clearInterval(timer2);}},10);
}
同样粘贴在浏览器控制台按回车执行即可。
是不是很简单?有人会说简单但是繁琐。的确步骤有点多,那我就再提供已方法让步骤简化一下即可。那就是把上面修改过的内容,去掉注释行(就是//开头的行)然后把所有的换行都去掉,把所有内容缩到一行上。然后在前面加上javascript:,最后把它存放到书签上,使用的时候,打开12306,然后点击一下标签即可自动刷票了。
新鲜出炉的12306防挂脚本,有需要的拿走相关推荐
- 一文掌握明年物联网传感器市场!2022中国AIoT产业全景图谱报告新鲜出炉
来源:传感器专家网 物联网产业是传感器应用最广泛的领域之一,研发新型传感器,做传感器市场,都不能不考虑物联网产业的需求. 2021年随着COVID-19 病毒的存在已常态化,防疫抗疫进入了拉锯阶段:波 ...
- 新鲜出炉的一款SpringBoot +Vue的考试系统
一.考试系统简介 新鲜出炉的一款SpringBoot +Vue的考试系统,支持多种题型:选择题.多选题.判断题.填空题.综合题以及数学公式.支持在线考试,教师在线批改试卷. 二.项目架构 后端技术栈 ...
- 2021年第一季开发者报告新鲜出炉,最流行的编程语言竟然是它!
2021年第一季开发者报告新鲜出炉,最流行的编程语言竟然是它! 近日,开发者调查分析公司SlashData发布了2021年<开发者报告>(第20版).报告中掺杂着大量冰冷的数字,无情的叙述 ...
- 这些技术人棒棒哒!BingoDay2017获奖名单新鲜出炉~~~
3月24日,在为来宾们带去详实的技术干货后,2017年的BingoDay圆满落幕了.但是,品高软件年度解决方案的竞选才刚刚开始!在经过数天紧张激烈的投票和评选后,今天,品高软件年度解决方案.Bingo ...
- 2014年新鲜出炉的16款免费英文字体
这里集合了16款现代风格的高质量英文字体,可以免费下载使用.这些字体在使用大字号显示(如广告.标签.宣传册和海报设计等)的时候效果最佳.设计师们不要错过了,赶紧收藏到你的字体库里. 您可能感兴趣的相关 ...
- 【新鲜出炉】25套的精美 Web 应用程序图标素材
设计精美的图标能够向用户清晰的传递信息,不管是在网页还是 Web 应用程序中都非常需要.这些小小的图标元素能够告诉用户怎么到下一页,如何添加.删除和取消等等各种操作.设计精美的图标不仅能增加界面的美观 ...
- 微信小程序开发视频教程新鲜出炉
微信小程序开发公测了,可是对于新手来说,不同的框架不同的开发机制,如何快速适应呢?微信小程序开发视频教程新鲜出炉了,从零开始一步一步搭建微信小程序,每个章节都会涉及到不同的知识点,等教程学习完你不但掌 ...
- 新鲜出炉!20款好看的英文字体下载
字体是设计作品的重要组成部分,相比图形化元素,字体更能够清晰的表达含义.字体的运用是一门学问,使用恰当的字体作为设计元素能够达到事半功倍的效果.这里给大家分享20款新鲜出炉的好看的英文字体,可以免费下 ...
- 字体大宝库:26款新鲜出炉的高品质免费英文字体
这篇文章收集了26款新鲜出炉的英文字体分享给大家,这些高品质的免费英文字体特别适合用于网页设计.平面设计.印刷以及海报和LOGO的设计.如果你正在高品质的免费英文字体,那么下面这些正是为你准备的,相信 ...
最新文章
- 搜索功能:洞悉产品的绝佳入口
- 博弈论 斯坦福game theory stanford week 1.1
- JS中基本数据类型和引用类型最根本的区别
- 《直播疑难杂症排查》之二:播放卡顿
- Android BottomNavigation Demo
- 春风十里不如春城一聚:华平解决方案巡展走进昆明
- java不同进程的相互唤醒_Java多线程(二)同步与等待唤醒
- 刷题总结——树的同构(bzoj4337 树上hash)
- Vue学习笔记之18-网络请求模块的封装
- GDI+处理带透明区域的png图片
- python修改桌面壁纸_轻松有趣的Python小案例,让电脑自动更换壁纸
- 苹果wifi网速慢怎么办_三步解决家里网速慢的问题
- Android音视频开发:AudioRecord录制音频
- Flutter 中 GestureDetector 的使用误区
- 用51单片机实现抽水水泵
- P0.9COB小间距LED显示技术的优势。
- 8 大主流自媒体平台优缺点分析以及运营建议
- java遍历json数据_Java 如何遍历JsonObject对象
- 利用opencv给视频截图
- Django:将项目移动到新环境
热门文章
- 信息学奥赛之数学一本通 C++版 用编程的方式学数学
- 罗斯蒙特CNG050S290NQEPMZZZ流量计
- Dapper入门使用
- Day5 Four English Grammer Mistakes Made By French Speakers
- android吸附菜单,Android RecycleView实现滑动停止后自动吸附效果
- 3D离线地图的两种实现方式
- 第六篇 Spring 自动装配
- 【Python】python与redis的初次碰撞,这种骚浪贱就得好好调教!
- 计算机控制系统AD实验报告,实验一AD转换实验报告.docx
- ppc64 安装jdk