做最好的微信投票资讯站

尝试用JS写一个在12306刷火车票的脚本

最近火车票又紧张起来了,本人出差在外,想订个车票回家真是不容易啊。
无聊时间研究了下12306的车票查询系统,据说这个系统可是花了高价的,让我对前端这个行业充满信心……
好了,不吐槽了,贴代码:

 

 

var momoMor = window.setInterval(function(){

        //获取DOM

    var iframeDOM = document.getElementById("main").contentWindow;

        //异步刷新

    iframeDOM.sendQueryFunc();

        //数据检索

        window.setTimeout(function(){

                var dataNum = 7;

                var dataMain = iframeDOM.document.getElementById("gridbox");

                var allTable = dataMain.getElementsByTagName("table");

                var dataTitle,dataInfo,dataFlag;

                for(var a=0;a<allTable.length;a++){

                        if(allTable[a].className=="hdr"){

                                dataTitle = allTable[a].getElementsByTagName("tr")[2].getElementsByTagName("td")[dataNum].innerHTML;

                                break;

                        }

                }

                for(var b=0;b<allTable.length;b++){

                        if(allTable[b].className=="obj row20px"){

                                dataFlag = allTable[b].getElementsByTagName("tr")[1].getElementsByTagName("td")[0].innerText;

                                dataInfo = allTable[b].getElementsByTagName("tr")[1].getElementsByTagName("td")[dataNum].innerText;

                                break;

                        }

                }

                var today=new Date();

                var nowTime = today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();

                console.log("["+nowTime+"]>>"+dataFlag+":"+dataTitle+":"+dataInfo);

                if(dataInfo!="无"&&dataInfo!="--"){

                        alert(dataFlag+":有票啦!!!")

                        window.clearInterval(momoMor);

                }

        },1000);

},6000)

 

在IE9下进行的测试,放在控制台里运行,其它浏览器没测试。
另外,网站套用了好几层IFRAME,没那个时间一次一层往下查,我是在“”这个地址下测试的。
主要难点还是在数据提取这部分,这么高成本的网站,table布局的……
有兴趣的可以研究和完善下。
另外声明:我没刷过啊,我的票朋友帮忙订的,写这个就是出于研究和学习的目的,谢绝查水表啊。