本屌丝家在异乡,逢年过节免不了与12306你侬我侬一番。每次都有种力不从心的赶脚,之前因为时间关系,没有深究12306如此神奇的原因,最近仔细研究了网上两位高人关于新版12306抢票工具的代码,在学习的同时,谈谈自己的感想先。话不多说,记录如下:

第一位的原贴地址是:http://www.cnblogs.com/leefan/p/3521629.html,这位仁兄的想法很是独到,他将一些在前端的判定省略,从而很巧妙的借助已有jquery函数巧妙绕过了验证码的输入,达到自动提交不用输验证码的效果,并且修改一个参数,就可以将自动刷票的间隔时间随意更改。本屌是js的初学者,在对原作者无限崇拜的同时,发现由于作者是顺着12306的思路,所以用了两次ajax通信,第一次是验证码验证,第二次是提交购票信息,第一次还将ajax设置为同步,所以有些耗时。那么既然是欺骗后台,为什么不直接删掉第一次验证码的ajax通信呢,岂不是可以节省更多时间,带来更多机会?于是本屌抱着试一试的态度,将第一次通信省略,发现可行。当我有点小激动的想去把第二次通信删除时,返回如下页面,(这不是传说中的维护画面吗?),本屌后来想通了,因为你这个账号是没有在服务器端有任何的订购记录,所以不会给你订票的,有可能每晚23点以后就把这第二个ajax的调用给关闭,使我们没有办法继续购票,如果这样的话,那么23点之前订购成功的票,是可以在23点45分之前付款就行了(待验证)。有点跑偏了,回到正题,所以本屌最后在原作者基础上改过代码如下,至于如何运行,本屌就不多说了,毕竟原作者非本人,但是如果要在firefox上运行,我遇到的问题是需要把$统统改为jQuery,否者FF会报不识别函数的错误。

autoSearchTime=600;
$("#randCode2").unbind('keyup');
function bO() {if ($("#sf2").is(":checked")) {return "0X00"} else {return "ADULT"}};
$("#randCode2").on("click",function(bS) {$("#back_edit").trigger("click");$.ajax({url: ctx + "confirmPassenger/confirmSingle",type: "post",data: {passengerTicketStr: getpassengerTicketsForAutoSubmit(),oldPassengerStr: getOldPassengersForAutoSubmit(),tour_flag: "dc",randCode: $("#randCode").val(),purpose_codes: bO(),key_check_isChange: md5Str,train_location: location_code},dataType: "json",async: true,success: function(bR) {otsRedirect("post", ctx + "payOrder/init?random=" + new Date().getTime(), {})},error: function(bR, bT, bS) {return}})$("#randCode2").removeClass("inptxt w100 error").addClass("inptxt w100");$("#i-ok2").css("display", "block");$("#c_error2").html("");$("#c_error2").removeClass("error");return
});
setInterval(function(){if($("#autosubmitcheckticketinfo").css("display")!="none"){$("#randCode2").trigger('click');}
},400);

第二位大神的思路同样很赞,原贴地址是:http://www.cnblogs.com/guozili/p/3512490.html,他实现了CDN的自动切换,事实和理论证明,这样是管用的,我们不知道哪个CDN的缓存最先更新,或者简单理解:余票信息在主服务器上是一定的,那么这些信息更新到各地的CDN时间不一,有的几秒钟 ,有的几分钟,相信大家都有这样的刷票经历:和朋友第一时间一起开始刷票,可是人家那都买完了,自己还是没有显示一张票,不是网络慢,不是电脑差,更不是你人品不行,而是你被路由到一个更新慢的CDN了(好像也是和人品有点关系)。原作者切换hosts ip的动作我是通过在VS上搭建一个ASP web 应用程序实现的,大家记得把port设置成1111就行了,或者改js里的port寻址。我没有改什么东西,只是觉得把host 更换频率可以放快点(原来代码是5秒),另外建议大家把两位大神的方法一起用,那效果是刚刚的(既自动换CDN,又不用输验证码)。

其实想想12306也很不容易,哪个网站这样糟蹋也消受不起,我能理解将一些判定放在前端是为了后端减压,可是咱毕竟拿了那么多钱在整网站,把钱用来加强一下后端处理能力,也不至于网络黄牛漫天飞吧,最后希望每个人都能买到满意的火车票,过个胡吃海喝的大年!

此贴为学习贴,仅此而已。发帖的时机有些晚,还是希望能帮到大家。

新版12306的刷票故事相关推荐

  1. 12306官网页面html,新版12306网址页面以及订票系统功能介绍

    新版12306订票系统介绍 怎么能抢到春运火车票呢?近日,铁道部发布消息称,新版12306订票系统于今日上线.在新版页面试运行期间,12306网站新旧版本将同时运行,希望试用新版的旅客可从12306网 ...

  2. 玩转新版12306之抢票篇

    文章只做技术研究  如果通过此技术违反国家法律,一切后果自负,作者不承担任何责任. 好吧,先来唠叨,唠叨.这几天大家都沉浸在抢票中,当然我也不例外. 最后总结一句,有抢票软件不一定能抢到票,没抢票软件 ...

  3. 12306自动刷票下单-查票下单

    12306自动刷票下单-登录 前言 上篇写了12306登录,隔了快一个月了,才准备动手写下单篇,真的要非常感谢博客园的 Asimple朋友,如果不是看到你的留言,我几乎都忘了要写下篇了,这一点在简书上 ...

  4. python+splinter实现12306网站刷票并自动购票流程

    python+splinter实现12306网站刷票并自动购票流程 通过python+splinter,实现在12306网站刷票并自动购票流程(无法自动识别验证码). 此类程序只是提高了12306网站 ...

  5. python批量自动订票_python+splinter实现12306网站刷票并自动购票流程

    python+splinter实现12306网站刷票并自动购票流程 通过python+splinter,实现在12306网站刷票并自动购票流程(无法自动识别验证码). 此类程序只是提高了12306网站 ...

  6. 新版12306信息服务器,新版12306初体验来了!

    原标题:新版12306初体验来了! 改版升级的中国铁路12306网站 (www.12306.cn) 正式上线运营啦! 作为好奇宝宝 小编在改版的第一时间 便体验了一把新版页面的各项热门功能 准备好了吗 ...

  7. 12306自动刷票下单-下单

    12306自动刷票下单-登录 12306自动刷票下单-查票预定 下单 进入下单界面了 https://kyfw.12306.cn/otn/confirmPassenger/initDc 还有一个请求h ...

  8. 12306自动刷票下单-登录篇

    12306网站推出图片验证码以后,对于抢票软件就提出了更高的要求,本篇并不涉及自动识别验证码登录(主要是博主能力所限),提供一个途径-打码平台,这个几乎是可以破解所有验证码了,本篇主要是分享一下123 ...

  9. 12306自动刷票下单-下单(三)

    12306自动刷票下单-登录篇(一) 12306自动刷票下单-查票预定(二) 下单 进入下单界面了  https://kyfw.12306.cn/otn/confirmPassenger/initDc ...

最新文章

  1. 【UWB】数学建模 E 题目个人解题答案 - 2021年第十八届华为杯
  2. Thymeleaf——在不覆盖现有class属性的情况下动态添加CSS class解决方案
  3. 如何提升测试环境的稳定性?来看看阿里内部的实践总结
  4. 8bit黑白图像的灰度值范围是_浅谈工业CT图像灰度值
  5. why FOR ALL ENTRIES is not considered at all in one order search
  6. 现代制造工程——考试复习01
  7. CenterOS 7安装Nginx
  8. C#关闭子窗口而不释放子窗口对象的问题解决
  9. python获取命令行参数_Python获取命令行参数的正确方法,案例详解
  10. 2021-2025年中国催产药行业市场供需与战略研究报告
  11. 微服务架构实战篇(二):Spring boot2.0 + Swagger2 让你的API可视化
  12. R语言分布的卡方拟合优度检验
  13. win32 窗口 绘制矩形
  14. TypeError: decoding str is not supported
  15. 如何上联想官网查询服务器配置信息,联想服务器型号联想服务器如何鉴别!
  16. 那些会休息的人是如何度过假期的?
  17. 怎样让宝贝从小做一个有道德的人?
  18. Mesos/Omega/Borg(K8S)/Firemament对比
  19. IC卡参数、公钥之 RID、AID
  20. .Net Framework 3.5在Windows 10的安装(2020.3.16可行)

热门文章

  1. The 2021 ICPC Asia Taipei Regional Programming Contest L. Leadfoot(组合数学/2-adic赋值函数+kummer定理)
  2. [mfc] SetWindowPos函数
  3. 二手交易小程序毕业设计,二手物品交易小程序系统设计与实现
  4. SAP UI5 应用开发教程的学习目录 - 循序渐进,由浅入深,适合不同水平的 SAP UI5 开发人员
  5. 开机默认usb debug 调试,且不弹窗自动确认选择。默认开启开发者模式(不是仅仅开启开发者菜单)。
  6. Android之通过配置Flavor实现一个项目打包成多个apk(转载)
  7. html css 水平滚动条,html/css/js-横向滚动条的实现
  8. NOIP2016提高组 第二天第三题 愤怒的小鸟angrybirds 题解
  9. 天赋奇臻、炭中极品——Coris珂芮丝
  10. 操作系统—电梯调度模拟程序(C语言,数据结构,含代码)