我需要從Java網頁解析HTML元素,填寫表單並提交它以模擬登錄。在Android中解析並執行HTML
我一直在做一點研究,這裏是我使用jsoup
庫做的。
但是,在實現這個之後,我意識到jsoup
僅用於解析並且不能執行按鈕點擊,例如。
在這個例子中,我需要點擊submitButton
元素。
try {
Document htmlDoc = Jsoup.connect(MY_URL).get();
Element loginForm = htmlDoc.getElementById("login-form");
Element usernameField = loginForm.getElementById("username");
Element passwordField = loginForm.getElementById("passwd");
Element submitButton = loginForm.getElementById("submit");
usernameField.val(username);
passwordField.val(password);
// I need to simulate `submitButton` click so I can login
} catch (Exception e) {
Log.e("TAG", e.toString());
}
上午我在理解是正確的jsoup
不能夠這樣做的?
如果是這樣,有沒有Android的圖書館可以?
我知道有很多Java庫,但由於javax
限制,大多數無法使用Android(例如HtmlUtil)。
你想效仿瀏覽器還是隻想發表一個表單?爲什麼你需要解析表單呢?畢竟,你沒有從你提供的代碼片段中的表單中提取任何信息。 –
我不需要提取任何信息。我需要做的是驗證提供的用戶名和密碼是否有效。如果我可以模擬點擊,我可以驗證提供的ID和密碼是否有效。我知道有更好的方法來做到這一點,但我需要暫時以這種方式實現它 –
該方法在很大程度上取決於您想要探測的網站的性質。如果它返回一個錯誤(例如404,403,401),您可以發佈用戶名和密碼並查看響應。請參閱https://developer.android.com/reference/java/net/HttpURLConnection.html以獲取正確的方向。如果您搜索HttpURLConnection和HTTP POST,您將獲得大量有關如何將表單數據發佈到URL的教程。 –