zoukankan      html  css  js  c++  java
  • 怒刷九元航空靠窗座位!

    第一次用九元航空,没有免费托运的行李也就算了,竟然连值机都是要随机(按照你提交选座的顺序来分配),前两次都没刷到靠窗的作为,这让我刚买的单反,怎么在朋友圈装逼呐!不过按照九元的规则,我还有最后一次提交选座的机会,这个一定要把握啊。

    入正题,F12看到,九元的值机页面很简单。在这个页面中输入身份证跟姓名后(貌似只能提前24个小时值机嘛?反正昨天没查出我有机票这一项),点击【查询航班】,之后再点击【值机】按钮(如果已经值机的可以取消值机,然后在进行值机--亲,你只有3次机会哦)。

    之后你会进入这个页面:

    http://www.9air.com/check_seat.html?pid={一串数字}&fno={航班号}&fd=20160303&ori=WNZ&name={姓名}&idno={身份证号}

    然后,F12,,,你懂得!

    在Network中由下往上看,你会发现这个请求:

    http://www.9air.com/aq/GetCheckInSeats?pid={一串数字}&fno={航班号}

    里面返回的JSON数据如下:

    {
        "fid": "XXXX",
        "stf": "0",
        "stqnull": [
            {
                "sn": "1F"
            },
            {
                "sn": "1E"
            },
            {
                "sn": "1D"
            }
        ],
        "stqs": [
            {
                "sex": "F",
                "sn": "5A"
            },
            {
                "sex": "M",
                "sn": "5B"
            },
            {
                "sex": "M",
                "sn": "5C"
            },
            {
                "sex": "M",
                "sn": "5D"
            },
            {
                "sex": "M",
                "sn": "5F"
            },
            {
                "sex": "M",
                "sn": "6A"
            },
            {
                "sex": "M",
                "sn": "8A"
            }
        ],
        "stc": "0",
        "mxy": "XXXXX",
        "at": "XXXXX",
        "destcn": "到达地",
        "fd": "20160303",
        "ori": "WNZ",
        "stq_run_time": "15",
        "dest": "CAN",
        "seqy": "这个也不重要",
        "ac": "XXXXX",
        "aa": "XXXX",
        "fn": "XXXX",
        "sty": "1",
        "oricn": "出发地"
    }
    

      stqs里面是作为已经被预定了的。竟然连性别都有。。。好吧,我很正直,只刷靠窗的位置。

    一下是我写的js脚本,把这个复制到上面那个页面的控制台中就行了:

    var _loop_count=0;
    function checkhb(){//刷航班
    	_loop_count++;
    	var bo=false;
    	$.get("http://www.9air.com/aq/GetCheckInSeats?pid={一串数字}&fno={航班号}",function(data){
    		var minh=5,maxh=32;//行
    		var lei=['A','B','C','D','E','F'];
    		for(;minh<maxh;minh++){//排循环
    			var r=[],r1=0;//已经有人的位置
    			for(var i=0,l=lei.length;i<l;i++){
    				var leeph=minh+lei[i];//当前循环的位置
    				for(var ii=0,ll=data.stqs.length;ii<ll;ii++)
    					if(leeph==data.stqs[ii].sn)
    						r.push(i);
    			}
    			if(r.length==6){//当前排已经坐满人
    				continue;
    			}else if(r.length!=0){
    				bo=r[0]!=0;//说明第一个座位没人,必须抢啊
    				if(bo)
    					break;
    				for(var a=0,b=r.length;a<b;a++){
    					r1=r1+r[a];
    				}
    				bo=(r.length==6&&r1==(0+1+2+3+4));//剩下右边一个靠窗的位置
    				if(bo) break;
    				if(r1!=(0+1+2+3+4+5)){//不用循环了,暂时没有靠窗的位置
    					console.log('循环第'+_loop_count+'次,暂时不能抢!');break;
    				}
    			}else{//当前排没有一个人
    				bo=true;break;
    			}
    		}
    		if(bo) $(".submitbut").trigger('click');
    	});
    }
    setInterval(checkhb,3000);
    

      

    亲们,祝福我刷出靠窗的座位吧

  • 相关阅读:
    Azure PowerShell (2) 修改Azure订阅名称
    Windows Azure Platform Introduction (11) 了解Org ID、Windows Azure订阅、账户
    Azure PowerShell (3) 上传证书
    Azure PowerShell (1) PowerShell入门
    Windows Azure Service Bus (2) 队列(Queue)入门
    Windows Azure Service Bus (1) 基础
    Windows Azure Cloud Service (10) Role的生命周期
    Windows Azure Cloud Service (36) 在Azure Cloud Service配置SSL证书
    Android studio 使用心得(一)—android studio快速掌握快捷键
    android 签名、混淆打包
  • 原文地址:https://www.cnblogs.com/tlzzu/p/5238379.html
Copyright © 2011-2022 走看看