根據日期,始發站,終點站,車次等資訊檢測 12306 是否有餘票
給 12306 購票網頁注入指令碼,指令碼模擬請求,解析引數,獲取最終的餘票資訊
餘票資訊通過介面資訊通知服務端
1.獲取所有車站名稱對應的 map
station_names
是 12306 **定義的全部變數,注入的指令碼可以直接使用。
這個map
服務於獲取餘票介面的引數
**如下:
function getstationmap() ;
arr.foreach((item) =>
});return ret;
}
結果如下:
2.請求介面,獲取混淆的餘票資訊
引數說明:
**如下:
function getlist() &leftticketdto.from_station=$&leftticketdto.to_station=$&purpose_codes=adult`
).then((res) => )
.catch((e) => );
}getlist(,,],
});
介面獲取到的res
是乙個混淆過的json
,我們需要額外的函式處理。
3.資料解碼
解碼函式**如下:
function cr(cq, cs, filter)
cr.from_station_name = cs[cn[6]];
cr.to_station_name = cs[cn[7]];
ct.queryleftnewdto = cr;
cp.push(ct);
}return cp
.map((item) => = item;
const = queryleftnewdto;
return ;
}).filter((item) => );
}
使用
function getlist() &leftticketdto.from_station=$&leftticketdto.to_station=$&purpose_codes=adult`
).then((res) => );
} else
}).catch((e) => );
}
效果
三、**位址
12306搶票軟體
import json,time 讀寫資料庫中的票數 defwr info sign,dic none if sign r with open ticket mode r encoding utf 8 as fp dic json.load fp return dic elif sign w wit...
12306餘票查詢 二 獲取餘票資料
上節分析了獲取餘票資料的請求,本節開始抓取資料class get tickets def init self,start station,destination,date self.date date self.params 首先是傳遞你到底要查什麼,就是前面分析所需的三個引數 其實這裡要判斷一下,...
獲取12306最新的餘票資訊
最近也快到春運高峰期了,每年到這個時候都是鐵路部門最忙的時候,同時也是12306 以後都以 來代替 大考的時候,出於乙個技術人員對於 的好奇所以嘗試獲取它的最新資料。之前準備實現乙個第三方訂票系統,後來分析之後發現破解驗證碼這第一關就沒辦法完成,所以最後放棄這個想法。後來考慮即使不能通過第三方來訂票...