我目前有一个应用程序需要用户名&来自用户的密码,然后使用webview上的javascript命令登录并显示页面。我现在想避免使用webview,所以我打算使用jsoup来拉取页面的必要部分,并使用诸如textview之类的东西来表示。那么如何使用jsoup执行javascript来记录用户,然后抓取html?
答案 0 :(得分:0)
Jsoup无法执行javascript,因为它不包含javascript引擎。你可以使用的是selenium的web驱动程序api。现在有一个名为android web driver的新项目可以证明是适合你的工具(我自己从未尝试过)。
链接:
答案 1 :(得分:0)
Jsoup不执行JavaScript。但我认为在这种情况下你仍然可以使用jsoup。这取决于JavaScript的工作方式。一般来说,它就像是使用POST数据中的凭据将页面提交到某个URL。因此,您需要确定用户名和密码的参数名称和值。然后,您可以使用Jsoup将数据发布到具有适当凭据的URL。
您可以尝试类似
的内容Document doc = Jsoup.connect("http://www.yoururl.com/")
.data("userName", "your username")
.data("password", "your password")
.post();
然后使用doc对象,您可以解析并显示您的视图。
答案 2 :(得分:0)
您应首先登录然后解析html。您可以使用cookie进行登录,并在其他代码中重新调用cookie。
Response res = Jsoup.connect("http://yourloginURL").data("username", "username", "password", "password").method(Method.POST).execute();
Map<String, String> loginCookies = res.cookies();
Document doc1 = Jsoup.connect("http://yourotherURL").cookies(loginCookies).get();