簡體   English   中英

如何使用Jsoup登錄頁面

[英]How to log in to pages using Jsoup

經過幾個小時的搜索,我仍然對登錄后如何訪問html頁面感到有些困惑。查看此處的其他各種帖子以及Jsoup API,我了解到登錄頁面將需要以下代碼:

    Connection.Response loginForm = Jsoup.connect("https://parentviewer.pisd.edu/")
            .method(Connection.Method.GET)
            .execute();

    Document document = Jsoup.connect("https://parentviewer.pisd.edu/")
            .data("username", "testUser")
            .data("password", "testPass")
            .data("LoginButton", "Login")
            .cookies(loginForm.cookies())
            .post();

但是,我認為我的理解可能有點歪斜,因為我仍然不太完全理解應該為每個值輸入什么。

例如,在的網站上,我是否將輸入名稱=“ ctl00 $ ContentPlaceHolder1 $ portalLogin $ UserName”作為鍵並將“ testUser”作為值?

我處理此任務的方法是否正確? 任何幫助是極大的贊賞。

是的,此代碼看起來像您的代碼。

Connection.Response loginForm = Jsoup.connect("https://parentviewer.pisd.edu/")
        .method(Connection.Method.GET)
        .execute();

Document document = Jsoup.connect("https://parentviewer.pisd.edu/")
        .data("ctl00$ContentPlaceHolder1$portalLogin$UserName", "testUser")
        .data("ctl00$ContentPlaceHolder1$portalLogin$Password", "testPass")
        .cookies(loginForm.cookies())
        .post();

System.out.println(document.body().html());

如何使它工作? 最好的方法是在瀏覽器中啟用Web Developer Console並登錄此頁面。 完成此檢查后,將從瀏覽器發送到服務器的內容發送給JSoup,並使用JSoup發送此數據。

在您的示例中,請求數據如下所示:

Request URL:https://parentviewer.pisd.edu/
Request Method:POST
Status Code:200 OK

FormData:
__LASTFOCUS:
__EVENTTARGET:
__EVENTARGUMENT:
__VIEWSTATE:/wEPDwULLTEwNjY5NzA4NTBkZMM/uYdqyffE27bFnREF10B/RqD4
__SCROLLPOSITIONX:0
__SCROLLPOSITIONY:106
__EVENTVALIDATION:/wEdAASCW34hepkNwIXSnvGxEUTlqcZt0XO7QUOibAd3ocrpayqHxD2e5zCnWBj9+m7TCi0S+C76MEjhL0ie/PsBbOp+Shjkt2W533uAqvBQcWZNXoh672M=
ctl00$ContentPlaceHolder1$portalLogin$UserName:testUser@gmail.com
ctl00$ContentPlaceHolder1$portalLogin$Password:testPass
ctl00$ContentPlaceHolder1$portalLogin$LoginButton:Login

並非所有數據都是必需的,請以最少的請求嘗試並檢查是否可行。

暫無
暫無

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

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