[英]How to use JSoup to navigate pages
我正在研究一個解析html頁面並使用其元素的android應用,然后轉到下一頁並提取其元素。 我以前是用Selenium來做這項工作的,但是當我在Android上使用它時,它會占用過多的內存,並且應用程序停止響應。 現在,我被困在登錄頁面中,必須輸入用戶名和密碼。 我設法做到了,但無法轉到下一頁。 它會返回相同的登錄頁面,而不是下一個。 我真的需要用JSoup做到這一點,因為最終代碼必須與android應用程序代碼集成在一起。 請幫助!
try {
String url = "http://slateisb.nu.edu.pk/portal";
Document doc = Jsoup.connect(url).
followRedirects(true).
data("eid", "i110013").
data("pw", "001").
method(Method.POST).get();
String title = doc.title();
print("Title : %s" , title);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
import java.util.Map;
import org.jsoup.Connection;
import org.jsoup.Connection.Method;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class Main {
public static void main(String[] args) {
try {
//In this url you must login
String loginUrl = "http://slateisb.nu.edu.pk/portal/xlogin";
//This is an example, it can be anything else
String url = "http://slateisb.nu.edu.pk/portal";
//First login. Take the cookies
Connection.Response res = Jsoup
.connect(loginUrl)
.data("eid", "i110013")
.data("pw", "001")
.referrer("http://www.google.com")
.userAgent(
"Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.method(Method.POST).timeout(0).execute();
Map<String, String> loginCookies = res.cookies();
//Now you can parse any page you want, as long as you pass the cookies
Document doc = Jsoup
.connect(url)
.timeout(0)
.cookies(loginCookies)
.referrer("http://www.google.com")
.userAgent(
"Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.get();
System.out.println("Title : " + doc.title());
} catch (Exception e) {
e.printStackTrace();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.