您的位置:首页 > 运维架构 > 网站架构

简单实用的铁道部12306.cn网站自动化登录

2012-01-12 17:03 246 查看

铁道部网站登录难点分析

必须使用微软IE浏览器

铁道部网站只支持IE在线付款

网站使用Https协议

客户端不允许跨域访问

技术解析

使用微软IE开发者工具栏即可破解自动化登录过程

开始步骤

使用IE8及其以上的版本,IE7及以下版本需要另外下载微软官方的IE开发者工具栏,下载链接如下:

Internet Explorer Developer Toolbar: http://www.microsoft.com/download/en/details.aspx?id=18359

在IE地址栏中访问铁道部登录页面 https://dynamic.12306.cn/otsweb/loginAction.do?method=init
需要 且 只需要输入一次自己的用户名,密码,验证码即可



按F12快捷键调出IE开发者工具栏 >>> Script(脚本)选项卡 >>> 复制如下图代码到内容文本框中 >>> 点击 Run Script(运行脚本) 按钮

var page = "https://dynamic.12306.cn/otsweb/loginAction.do?method=init";
var url = "https://dynamic.12306.cn/otsweb/loginAction.do?method=login";
var queryurl = "https://dynamic.12306.cn/otsweb/order/querySingleAction.do?method=init";

function submitForm() {
var _ifrMain = document.getElementById('main');
var userName = _ifrMain.contentWindow.document.getElementById('UserName');
var password = _ifrMain.contentWindow.document.getElementById('password');
var randCode = _ifrMain.contentWindow.document.getElementById('randCode');

var subLink = _ifrMain.contentWindow.document.getElementById('subLink');

var submitUrl = url;
$.ajax({
type: "POST",
url: submitUrl,
data: {
"loginUser.user_name": userName.value
, "user.password": password.value
, "randCode": randCode.value
},
timeout: 30000,
success: function (msg) {
if (msg.indexOf('请输入正确的验证码') > -1) {
alert('请输入正确的验证码!');
};
if (msg.indexOf('当前访问用户过多') > -1) {
reLogin(msg);
}
else {
location.replace(queryurl);
};
},
error: function (msg) {
reLogin(msg);
},
beforeSend: function (XHR) {
;
}
});
}

var count = 1;
function reLogin(msg) {
count++;
subLink.innerHTML = "(" + count + ")次登录中..." + msg;
setTimeout(submitForm, 500);
}

submitForm();




后面执行情况说明

点击了运行脚本按钮后,对客户来说,登录操作是自动化的了,无需其他操作,只待登录成功即可。

执行成功说明 ,如下图,看到自己的用户名后,即登录成功



最后总结

不足

前些天买票高峰期已过, 此技巧来得太晚 , 我的票别人帮忙订的,我没太注意用技术实现容易登录。



返程票高峰期马上到来!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐