2013-10-05 161 views
0

我正嘗試編寫一個快速應用程序以編程方式查看我的電費。爲此,我需要能夠以編程方式登錄網站,然後才能繼續進行其他任何操作。以編程方式登錄到網站

我知道必須以某種方式使用捲曲。但是,我不確定如何利用curl通過終端登錄到網站。這裏是網站:Seattle Utilitiy Bills Website

望着登錄表單對應的源,它看起來像這樣:

<tr> 
    <td nowrap class="form-style-text">User ID:</td> 
    <td class="form-style-label"><input type="text" autocomplete="off" size="17" name="loginid" maxlength="32"></td> 
</tr> 
    <script type="text/javascript">document.wizForm.loginid.focus()</script> 
<tr> 
    <td class="form-style-text">Password:</td> 
    <td class="form-style-label"><input type="password" autocomplete="off" name="password" size="17" maxlength="16"></td> 
</tr> 
<tr> 
    <td class="form-style-text">&nbsp;</td> 
    <td align="left"> 
     <input name="login" type="submit" class="actionbutton" onClick="doLogin()" value="Log in"/> 
    </td> 
</tr> 

我知道我需要使用捲曲以某種方式能夠登錄,但我不知道如何。特別是因爲登錄邏輯是由'doLogin()'函數完成的,我不確定如何使用curl從終端調用該函數。這裏是'doLogin()'函數的定義:

function doLogin() { 
    var wform = document.wizForm; 
    wform.type.value='LoginMenu'; 
} 

任何線索我怎麼可以使用終端/捲曲登錄到該頁面?

回答

0

您錯過了表單標籤。 <form class="extform" action="/csg/inetSrv" method="post" name="wizForm">

最有可能你需要保存會話cookie,你登錄後。

你需要做的是使用捲曲的表單數據發佈到/ CSG/INETSRV。使用參數--cookie-jar <file>保存cookie。然後,您可以再次使用curl使用cookie文件發出請求,並且您已登錄。

首先在瀏覽器中檢查cookie以瞭解其使用方式可能更容易。然後,您可以在使用curl登錄之前嘗試使用curl與瀏覽器會話cookie進行測試。