簡體   English   中英

成功登錄JSoup后無法解析網站

[英]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.

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