我需要从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的教程。 –