簡體   English   中英

登錄頁面,然后使用JSOUP解析html

[英]Login to page then parse html using JSOUP

我目前有一個應用程序,該應用程序從用戶那里獲取用戶名和密碼,然后在webview上使用javascript命令將其登錄並顯示頁面。 我現在想避免使用Webview,因此Im打算使用jsoup提取頁面的必要部分,並使用諸如textview之類的東西來呈現它。 那么,如何使用jsoup執行javascript來登錄用戶,然后抓取html?

Jsoup無法執行javascript,因為它不包含javascript引擎。 您可以使用Selenium的Web驅動程序api。 現在有一個名為android web driver的新項目,可以證明它是適合您的工具(我自己從未嘗試過)。

鏈接:

Android網絡驅動

Selenium Web驅動程序

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM