Cześć Wszystkim,
napisałem kod, który loguje się na stronie myBenefit.pl
public class MyBenefit {
final static String USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15";
final static String LOGIN_FORM_URL = "https://system.mybenefit.pl/mybenefit/login.html";
final static String LOGIN_ACTION_URL = "https://system.mybenefit.pl/mybenefit/login/by_email";
final static String USERNAME = "xxx";
final static String PASSWORD = "xxx";
public static void main(String[] args) {
try {
Connection.Response loginForm = Jsoup.connect(LOGIN_FORM_URL)
.method(Connection.Method.GET)
.userAgent(USER_AGENT)
.execute();
HashMap<String, String> cookies = new HashMap<>(loginForm.cookies());
HashMap<String, String> formData = new HashMap<>();
formData.put("captcha", "");
formData.put("email", USERNAME);
formData.put("lang", "pl");
formData.put("password", PASSWORD);
Connection.Response homePage = Jsoup.connect(LOGIN_ACTION_URL)
.cookies(cookies)
.ignoreContentType(true)
.data(formData)
.method(Connection.Method.POST)
.userAgent(USER_AGENT)
.execute();
System.out.println(homePage.statusCode());
System.out.println(homePage.parse());
} catch (IOException e) {
e.printStackTrace();
}
}
}
Poniżej to co mam w konsoli:
200
Dane do formData wziąłem z parametrów żądania. Kod się wykonuję, dostaję odpowiedź ze strony 200. Problem w tym, że LOGIN ACTION URL to jest json. Jeśli próbuję zmienić to na url, np ze statusu 302 (drugi url na zdjęciu),lub jakikolwiek, który jest typem HTML, to w konsoli mam błąd 403. Nie potrafię wykombinować co dalej. Program ma mi pozwalać na zebranie wszystkich div o jednej i tej samej klasie na podstronie.