0

我正在尝试编写一个快速应用程序来以编程方式查看我的电费单。为此,我需要能够以编程方式登录网站,然后才能继续进行其他操作。

我知道为此必须以某种方式使用 curl。但是,我不确定如何利用 curl 通过终端登录网站。这是网站:西雅图公用事业账单网站

查看登录表单的相应来源,如下所示:

<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>

我知道我需要以某种方式使用 curl 才能登录,但我不确定如何。特别是因为登录逻辑是由'doLogin()'函数完成的,我不确定如何使用 curl 从终端调用该函数。这是'doLogin()'函数的定义:

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

任何线索我可以如何使用终端/卷曲登录到这个页面?

4

1 回答 1

0

您错过了表单标签。<form class="extform" action="/csg/inetSrv" method="post" name="wizForm">

您很可能需要在登录后保存会话 cookie。

您需要做的是使用 curl 将表单数据发布到 /csg/inetSrv。使用参数--cookie-jar <file>保存cookie。然后您可以再次使用 curl 向 cookie 文件发出请求并登录。

首先在浏览器中检查 cookie 以了解其使用方式可能更容易。然后,您可以在使用 curl 登录之前尝试使用 curl 和浏览器会话 cookie 进行测试。

于 2013-10-05T09:11:40.297 回答