登录页面然后使用JSOUP解析html

时间:2014-05-15 22:57:16

标签: javascript android html android-webview jsoup

我目前有一个应用程序需要用户名&来自用户的密码,然后使用webview上的javascript命令登录并显示页面。我现在想避免使用webview,所以我打算使用jsoup来拉取页面的必要部分,并使用诸如textview之类的东西来表示。那么如何使用jsoup执行javascript来记录用户,然后抓取html?

3 个答案:

答案 0 :(得分:0)

Jsoup无法执行javascript,因为它不包含javascript引擎。你可以使用的是selenium的web驱动程序api。现在有一个名为android web driver的新项目可以证明是适合你的工具(我自己从未尝试过)。

链接:

Android web driver

Selenium 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();