第一次用九元航空,沒有免費托運的行李也就算了,竟然連值機都是要随機(按照你送出選座的順序來配置設定),前兩次都沒刷到靠窗的作為,這讓我剛買的單反,怎麼在朋友圈裝逼呐!不過按照九元的規則,我還有最後一次送出選座的機會,這個一定要把握啊。
入正題,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);
親們,祝福我刷出靠窗的座位吧