[javascript]代码库
/**
* author: jxq
*/
var stationDict =
{
"广州" : "GZQ",
"吉安" : "VAG",
"北京" : "BJP",
"北京西" : "BXP",
"太原" : "TYV",
"深圳" : "SZQ",
"上海" : "SHH"
};
var queryUrlTemplate = "https://dynamic.12306.cn/otsweb/order/querySingleAction.do?method=queryLeftTicket&orderRequest.train_date={trainDate}&orderRequest.from_station_telecode={fromStationCode}&orderRequest.to_station_telecode={toStationCode}&orderRequest.train_no=&trainPassType=QB&trainClass=QB%23D%23Z%23T%23K%23QT%23&includeStudent=00&seatTypeAndNum=&orderRequest.start_time_str=00%3A00--24%3A00";
function queryTickets(fromStation, toStation, trainDate)
{
var fromStationCode = stationDict[fromStation];
var toStationCode = stationDict[toStation];
var queryUrl = queryUrlTemplate.replace("{trainDate}", trainDate).replace("{fromStationCode}", fromStationCode).replace("{toStationCode}", toStationCode);
// 查询余票
$.get(queryUrl, function (data)
{
// 简单地检查是否有票,如果有票,则data中一定包含文本 btn130_2
if (data.indexOf("btn130_2") != -1)
{ // 有票
sendDesktopNotification("有票了亲!", fromStation + " - " + toStation + "有票了!\n快来抢票哈~~");
clearInterval(myInterval); // 清除轮询,以免烦人
}
else
{
console.log("不好意思," + fromStation + "-" + toStation + "暂时无票!");
}
}
);
}
// 桌面通知
function sendDesktopNotification(title, msg)
{
if (!window.webkitNotifications || (window.webkitNotifications.checkPermission() != 0))
{ // 不支持桌面通知或未授权
alert("不好意思,你的浏览器不支持桌面通知或者你未开启!");
return;
// 不支持桌面通知
}
var notificationMsgBox = window.webkitNotifications.createNotification(icon = "http://www.12306.cn/mormhweb/images/favicon.ico", title, msg);
notificationMsgBox.show();
}
queryTickets("北京", "广州", "2013-02-07");
// 每5秒刷一次票
var myInterval = setInterval(function ()
{
queryTickets("北京", "广州", "2013-02-07");
}, 5000);
/*
使用方法如下:
1、修改你的出发地、目的地以及出发时间信息,并且配置对应的城市代码(这个自己抓包看,很简单,Chrome network面板或者Fiddler)
2、登录并打开订票窗口
3、在控制台输入这段脚本代码
4、等待好了,每5秒刷一次,没票会在控制台输出信息,有票会弹出桌面通知,具体参考截图
缺陷
A、不支持筛选硬座、硬卧等信息,但是要支持很简单,看我的代码就知道了
B、不支持自动提交订单
C、只能帮你检查是否有票,有票了还需要你自己去点下查询按钮,然后订票(主要是因为这个按钮在iframe内部,不方便直接操纵)
D、你的Chrome浏览器可能会遇到
分享自:http://www.oschina.net/code/snippet_111708_17517
*/
[代码运行效果截图]
初级设计师
by: 海大软件1102班 发表于:2013-01-22 00:20:26 顶(4) | 踩(2) 回复
牛逼啊!!!能刷到吗?
回复评论