使用Jsoup Java登录

时间:2015-12-31 21:41:04

标签: java jsoup

如何通过jsoup登录?

  <table border="0" cellpadding="8px"> 
   <tbody>
    <tr> 
     <td align="left"> <span id="ctl00_bodyContent_LabelTurni1" style="font-size: 13pt;">Nome utente</span> </td> 
     <td align="left"> <input name="ctl00$bodyContent$txtUser" type="text" size="30" id="ctl00_bodyContent_txtUser"> </td> 
    </tr> 
    <tr> 
     <td align="left"> <span id="ctl00_bodyContent_LabelTurni2" style="font-size: 13pt;">Password</span> </td> 
     <td align="left"> <input name="ctl00$bodyContent$txtPassword" type="password" size="30" id="ctl00_bodyContent_txtPassword" onfocus="this.select();"> </td> 
    </tr> 
    <tr> 
     <td> </td> 
     <td align="center"> <input type="submit" name="ctl00$bodyContent$btnLogin" value="Conferma" onclick="ValidateConfirm(); return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$bodyContent$btnLogin&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_bodyContent_btnLogin"> <input type="submit" name="ctl00$bodyContent$btnEsci" value="Esci" onclick="window.close(); return false;" id="ctl00_bodyContent_btnEsci"> </td> 
    </tr> 
   </tbody>
  </table> 

我试过这个,但它不起作用:

Document doc = (Document) Jsoup.connect("http://turni.contacts.com/Default.aspx").data("ctl00_bodyContent_txtUser", "user").data("ctl00_bodyContent_txtPassword", "password").data("ctl00_bodyContent_btnLogin","Conferma")
//.cookies(res.cookies()).timeout(0).post();

1 个答案:

答案 0 :(得分:1)

通常登录网站需要两个步骤 -

  1. 您发送GET请求以获取该页面,然后从那里提取 一些值,如会话ID等,以及cookie。
  2. 您发送POST请求,其中包含步骤1中的值以及您的用户名和密码。
  3. 要知道您需要发送哪些值,请在开发者模式下使用浏览器(按F12键)并检查流量。更改user agent字符串以匹配您的浏览器,因为某些网站会向不同的客户端发送不同的页面。您可以看到示例here