[英]JSOUP Automatically Login to a website
我正在嘗試解析一個需要登錄的網站。 從瀏覽器中,當我在登錄頁面登錄時( https://backoffice.holidayinsider.com/backoffice2/login ),我將自動重定向到https://backoffice.holidayinsider.com/backoffice2/login 。
因此,首先我要嘗試使用Java自動執行登錄。 我的方法受此stackoverflow響應的激勵。 我使用的代碼如下:
package Login;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;
import java.util.Map;
public class DoLogin {
public static void main(String[] args)
{
try {
Connection.Response loginForm = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2/login")
.method(Connection.Method.GET)
.execute();
Connection.Response mainPage = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2")
.data("username", "myusername")
.data("password", "mypass")
.cookies(loginForm.cookies()).execute();
System.out.println(mainPage.parse());
Map<String, String> cookies = mainPage.cookies();
Document evaluationPage = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2/")
.cookies(cookies)
.execute().parse();
System.out.println(evaluationPage);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
看來登錄狀態為200,正在運行。現在的問題是當我打印mainPage時,它似乎仍在登錄頁面上。 可能是什么原因? 預先感謝您的任何幫助或建議。
登錄時,您需要添加POST方法:
Connection.Response loginForm = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2/login")
.method(Connection.Method.GET)
.execute();
Connection.Response mainPage = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2/login")
.data("username", "myusername")
.data("password", "mypass")
.cookies(loginForm.cookies())
.followRedirects(true)
.method(Connection.Method.POST).execute();
System.out.println(mainPage.parse());
Map<String, String> cookies = mainPage.cookies();
Document evaluationPage = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2/")
.cookies(cookies)
.get();
System.out.println(evaluationPage);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.