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

Login to page then parse html using JSOUP

本文关键字:JSOUP 解析 html 然后 登录      更新时间:2023-09-26

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

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

链接:

Android web driver

Selenium web driver

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对象你可以解析和显示你的视图

您应该先登录,然后解析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();