簡體   English   中英

使用Jsoup登錄網站並留在網站上

[英]Login to a website using Jsoup and stay on the site

我嘗試登錄這里: http//www.gszi.sulinet.hu/dinaweb/diakok/belepes.jsp

Connection.Response loginForm = Jsoup.connect("http://www.gszi.sulinet.hu/dinaweb/diakok/belepes.jsp")
            .method(Connection.Method.GET)
            .execute();

Document doc = Jsoup.connect("http://www.gszi.sulinet.hu/dinaweb/diakok/belepes.jsp")
            .data("name","myid")
            .data("name","mycode")
            .cookies(loginForm.cookies())
            .post();

之后,獲取我必須登錄的頁面的html,我意識到我無法登錄。有沒有辦法登錄然后獲取我現在可以訪問的頁面的HTML? 任何鏈接,建議或幫助表示贊賞。

您對兩個不同的輸入標記使用相同的鍵。 而且你使用的鑰匙是錯誤的。

.data("jelszo","SOMETEXT")
.data("felnev","PASSWORD")

更新

Connection.Response initial = Jsoup
        .connect("http://www.gszi.sulinet.hu/dinaweb/diakok/belepes.jsp")
        .method(Connection.Method.GET).execute();

Connection.Response login = Jsoup
        .connect("http://www.gszi.sulinet.hu/dinaweb/diakok/belepes.jsp")
        .data("jelszo","SOMETEXT")
        .data("felnev","PASSWORD")
        .cookies(initial.cookies())
        .method(Method.POST)
        .execute();

Document page = Jsoup
        .connect("ANY_PAGE_INSIDE_THE_SITE")
        .cookies(login.cookies()) //use this with any page you parse. it will log you in
        .get();

好的,實際上我發現我還需要一個參數(“akcio”)並且我將post()方法發送到錯誤的URL,現在我的程序正常運行,我的代碼:

Connection.Response loginForm = Jsoup.connect(loginFormUrl)
         .method(Connection.Method.GET)
         .execute();

    Map<String, String> loginCookies = loginForm.cookies();

    Document document = Jsoup
        .connect(loginFormUrl)
        .data("akcio", akcio)
        .data("felnev",felnev)
        .data("jelszo",jelszo)
        .cookies(loginCookies)
        .post();

    Document document2 = Jsoup.connect(loggedInUrl)
    .cookies(loginCookies)
    .get();
    System.out.println(document2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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