[問題] 登入網頁並存取資料

作者: 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