[JavaScript] 网友写的抢火车票脚本(Chrome)Version 0.1 →→→→→进入此内容的聊天室

来自 , 2019-08-20, 写在 JavaScript, 查看 112 次.
URL http://www.code666.cn/view/14bfa6bb
  1. /**
  2.  * author: jxq
  3.  */
  4.  
  5. var stationDict =
  6. {
  7.     "广州" : "GZQ",
  8.     "吉安" : "VAG",
  9.     "北京" : "BJP",
  10.     "北京西" : "BXP",
  11.     "太原" : "TYV",
  12.     "深圳" : "SZQ",
  13.     "上海" : "SHH"
  14. };
  15.  
  16. 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";
  17.  
  18. function queryTickets(fromStation, toStation, trainDate)
  19. {
  20.    
  21.     var fromStationCode = stationDict[fromStation];
  22.     var toStationCode = stationDict[toStation];
  23.    
  24.     var queryUrl = queryUrlTemplate.replace("{trainDate}", trainDate).replace("{fromStationCode}", fromStationCode).replace("{toStationCode}", toStationCode);
  25.    
  26.     // 查询余票
  27.     $.get(queryUrl, function (data)
  28.     {
  29.         // 简单地检查是否有票,如果有票,则data中一定包含文本 btn130_2
  30.         if (data.indexOf("btn130_2") != -1)
  31.         { // 有票
  32.             sendDesktopNotification("有票了亲!", fromStation + " - " + toStation + "有票了!\n快来抢票哈~~");
  33.             clearInterval(myInterval); // 清除轮询,以免烦人
  34.         }
  35.         else
  36.         {
  37.             console.log("不好意思," + fromStation + "-" + toStation + "暂时无票!");
  38.         }
  39.     }
  40.     );
  41. }
  42.  
  43. // 桌面通知
  44. function sendDesktopNotification(title, msg)
  45. {
  46.     if (!window.webkitNotifications || (window.webkitNotifications.checkPermission() != 0))
  47.     { // 不支持桌面通知或未授权
  48.         alert("不好意思,你的浏览器不支持桌面通知或者你未开启!");
  49.         return;
  50.         // 不支持桌面通知
  51.     }
  52.    
  53.     var notificationMsgBox = window.webkitNotifications.createNotification(icon = "http://www.12306.cn/mormhweb/images/favicon.ico", title, msg);
  54.     notificationMsgBox.show();
  55. }
  56.  
  57. queryTickets("北京", "广州", "2013-02-07");
  58. // 每5秒刷一次票
  59. var myInterval = setInterval(function ()
  60.     {
  61.         queryTickets("北京", "广州", "2013-02-07");
  62.     }, 5000);
  63.  
  64. /*
  65. 使用方法如下:  
  66. 1、修改你的出发地、目的地以及出发时间信息,并且配置对应的城市代码(这个自己抓包看,很简单,Chrome network面板或者Fiddler)
  67. 2、登录并打开订票窗口
  68. 3、在控制台输入这段脚本代码
  69. 4、等待好了,每5秒刷一次,没票会在控制台输出信息,有票会弹出桌面通知,具体参考截图
  70.  
  71. 缺陷
  72. A、不支持筛选硬座、硬卧等信息,但是要支持很简单,看我的代码就知道了
  73. B、不支持自动提交订单
  74. C、只能帮你检查是否有票,有票了还需要你自己去点下查询按钮,然后订票(主要是因为这个按钮在iframe内部,不方便直接操纵)
  75. D、你的Chrome浏览器可能会遇到
  76. 分享自:http://www.oschina.net/code/snippet_111708_17517
  77. */

回复 "网友写的抢火车票脚本(Chrome)Version 0.1"

这儿你可以回复上面这条便签

captcha