[英]Unable to parse website after successful log in JSoup
我使用JSoup庫成功登錄了網站,存儲了cookie,以便在需要訪問的第二個文檔中使用它們。 但是第二個文檔將解析數據,好像我沒有登錄。
這是代碼:
public class Main {
public static void main(String[] args) throws Exception {
Map<String, String> loginCookies = null;
Connection.Response loginForm = Jsoup.connect("login page")
.method(Connection.Method.GET)
.execute();
loginCookies = loginForm.cookies();
Document document = Jsoup.connect("login page")
.data("cookieexists", "false")
.data("username", "user")
.data("password", "pass")
.data("loginbtn", "Log in")
.cookies(loginCookies)
.post();
Document document2 = Jsoup.connect("Page with access required")
.cookies(loginCookies)
.get();
System.out.println(document2);
}
}
此代碼有什么問題?
您應該存儲和重復使用包含有關會話信息的cookie,這意味着您需要從傳遞憑據后獲得的服務器響應中存儲它們,而不僅僅是從空表單中獲取。
所以嘗試
Connection.Response loginForm = Jsoup.connect("login page")
.data("cookieexists", "false")
.data("username", "user")
.data("password", "pass")
.data("loginbtn", "Log in")
//.cookies(loginCookies)
.method(Connection.Method.POST)
.execute();
//here `loginForm` connected to server with your credentials
//and server returned response with cookies containing informations
//required to continue session so you should store them
//and reuse to access farther pages
Map<String, String> loginCookies = loginForm.cookies();
Document document2 = Jsoup.connect("Page with access required")
.cookies(loginCookies)
.get();
System.out.println(document2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.