[英]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的新項目,可以證明它是適合您的工具(我自己從未嘗試過)。
鏈接:
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.