从网站HTML表单获取数据

时间:2016-04-12 14:21:59

标签: javascript php html5 forms

我想写一个程序,登录我学校的网站,检查我应该知道的更新。我是JavaScript的新手。我查看了登录页面的源代码,看来用户名和密码是使用action属性发送的。 (我试图找到按下按钮时调用的JavaScript函数,但失败。还将action属性设置为一个值。)我理论如果我有我的登录凭据,那么如果我知道发送到服务器进行验证的数据格式,我可以编写模仿登录页面操作的交流程序。如何看待发送的内容?

以下是网站代码:

     <form action="http://[myschoolsdomainname].edu/login/index.php" method="post" id="login">
      <div class="loginform">
        <div class="form-label"><label for="username">Username</label></div>
        <div class="form-input">
          <input name="username" id="username" size="15" value="815008955" type="text">
        </div>
        <div class="clearer"><!-- --></div>
        <div class="form-label"><label for="password">Password</label></div>
        <div class="form-input">
          <input name="password" id="password" size="15" value="" type="password">
          <input value="Login" type="submit">
          <input name="testcookies" value="1" type="hidden">
        </div>
        <div class="clearer"><!-- --></div>
      </div>
    </form>

N.B。我不想做任何恶意的事情,我只是想自动定期检查网站(使用C或Java)来查看是否已发布家庭作业。我喜欢编码,我很好奇我是否可以这样做,但我不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

我同意Nick Delaney - Chrome上的网络标签(在Mac Option+Cmd+i上)会显示您想要查看的内容。单击打开的面板顶部的“网络”,然后选中“保留日志”复选框(如果不这样做,则整页加载将清除历史记录)。

您应该能够看到登录到站点并呈现后续页面的所有HTTP请求。 CSRF可能是也可能不是问题,但只有实验会告诉你。

例如,这是strava.com(一个用于跟踪健身活动的热门网站)的登录请求。这告诉我有一个表单帖子通过emailpasswordauthenticity_token(嗯,想知道这是什么?:),utf8remember_me字段。成功的回复是302 redirecthttps://www.strava.com/dashboard,它还会设置一些Cookie。

strava login request

如果我按照重定向(浏览器自动为我们这样做)并查看仪表板HTTP请求(在当前突出显示的请求下方),我将看到代表已登录的strava用户的仪表板页面的HTML(我) 。如果我想要的数据在仪表板上,那么挑战就是在重定向之后(使用登录请求中设置的cookie)进行“正确”登录请求并解析响应。