繁体   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