2014-05-15 44 views
0

我目前有一個應用程序,它需要用戶的用戶名爲&的密碼,然後在webview上使用javascript命令來登錄並顯示頁面。我現在想避免使用webview,所以我打算使用jsoup來拉取頁面的必要部分,並使用諸如textview之類的東西來代替。那麼我該如何使用jsoup來執行javascript來登錄用戶,然後刮掉html?登錄頁面,然後使用JSOUP解析html

+0

下面的答案有幫助嗎?您應該標記解決您的問題的答案或自己提供答案。 – alkis

回答

0

Jsoup無法執行JavaScript,因爲它不包含JavaScript引擎。你可以使用硒的網頁驅動API。現在有一個名爲android web driver的新項目,可以被證明是適合你的正確工具(從未嘗試過)。

鏈接:

Android web driver

Selenium web driver

0

Jsoup不執行JavaScript。但我認爲你仍然可以在這種情況下使用jsoup。這取決於JavaScript如何工作。一般來說,它將像在POST數據中使用憑據進行頁面提交。因此,您需要識別用戶名和密碼的參數名稱和值。然後,您可以使用Jsoup以適當的憑據將數據發佈到該URL。

你可以嘗試像

Document doc = Jsoup.connect("http://www.yoururl.com/") 
      .data("userName", "your username") 
      .data("password", "your password") 
      .post(); 

然後用doc對象可以解析和顯示你的看法。

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