[问题] 登入网页并存取资料

楼主: tsaiedward (菜渣)   2016-04-12 00:18:38
各位前辈好,小弟这学期才开始写Java,还算是新手,还请多多指教
最近兴起了想要开始研究Android App的念头
打算从写个登入我们学校的网络大学,并存取登入后的资料的App开始下手
然而光是在研究怎么登入这一步就卡住了
不才其实基本上一点HTML或是Javascript的基础都没有,
在网页source code里面撞了许久,摸索了些头绪,可是有些迷惑,因此前来向前辈们讨教
目前我找到的 我以为是送出登入帐密的source code是这里
<form autocomplete="off" method="post"
action="http://cu.nsysu.edu.tw/login.php" id="loginForm" name="loginForm"
onsubmit="return checkLogin();" target="_self">
而checkLogin()写在login.js内,code如下
function checkLogin()
{
/*
if (typeof MSG_NEED_USERNAME == "undefined")
var MSG_NEED_USERNAME = "Please fill username";
if (typeof MSG_NEED_PASSWORD == "undefined")
var MSG_NEED_PASSWORD = "Please fill password";
*/
var node = document.getElementById("loginForm");
if (node == null) return false;
if (node.username.value == "")
{
alert(MSG_NEED_USERNAME);
node.username.focus();
return false;
}
if (node.password.value == "")
{
alert(MSG_NEED_PASSWORD);
node.password.focus();
return false;
}
else
{
var pwdmask = "********************************";
/* NSYSU客制 begin 修正密码加密方式(因为本身不存密码, 到后端会解不开) */
// var md5key = MD5(node.password.value);
// var cypkey = md5key.substr(0,4) + node.login_key.value.substr(0,4);
var cypkey = node.login_key.value.substr(0,8);
/* NSYSU客制 begin end */
node.encrypt_pwd.value = stringToBase64(des(cypkey, node.password.value, 1));
node.password.value = pwdmask.substr(0,node.password.value.length);
}
return true;
}
小弟想知道的是 :
1. 我目前的认知有没有错误
2. 假如我要进行"送出帐密并登入"的动作,是要使用httpclient去对应loginForm
像 https://www.ptt.cc/bbs/java/M.1206936382.A.D75.html 这篇这样吗 ?
3. 假如2没有错的话,那么登入后的资料抓取也是透过使用httpclient吗 ?
恳请各位前辈协助解惑,感恩
作者: kiwatami (悠游自在)   2016-04-12 07:51:00
其实就是知道要传什么值到什么字段,传到哪个页面然后打开cookiestore的功能 以你这个例子就是先将密码加密后才传送 其他可能还有一些验证用字段也要一并传送 因为那就是避免机器人的字段如果是用Ajax产生的值 那你还需要找可以执行js的套件重点是你要猜到他们在server端做了什么处理与验证不论正确与否记得将结果output出来登入后就跟一般爬网页一样了
作者: aw038 (GuanY)   2016-04-13 00:59:00
借问,后学目前也在研究这个,传送帐密过去但回传500状态码,因此我在想是不是因为没有加密传过去,想请问各位先学如何处理?
作者: swallowcc (guest)   2016-04-13 01:55:00
500应该是exception了,抓log出来看死在哪一句吧...

Links booklink

Contact Us: admin [ a t ] ucptt.com