próbuję się zalogować do http://www.investabroadproperties.com/ miejscu za pomocą następującego koduZaloguj Metoda Post formularza ASP.NET przy użyciu Jsoup
Connection.Response loginForm = Jsoup.connect("http://www.investabroadproperties.com/")
.method(Connection.Method.GET)
.execute();
Document document = Jsoup.connect("http://www.investabroadproperties.com/")
.data("ctl00$ctl02$tbEmail", "myemail")
.data("ctl00$ctl02$tbPassword", "mypassword")
.cookies(loginForm.cookies())
.post();
Ale nie jestem w stanie zalogować się na tej stronie. Patrząc na źródło html witryny, widzę, że istnieją pewne pola hidden
jak pokazano poniżej, ale z pustymi wartościami. Istnieje również atrybut onsubmit="javascript:return WebForm_OnSubmit();"
, nie jestem pewien, jak z niego korzystać.
widzę też this post, ale nie mogłem zrozumieć logikę/kod, który jest podany w akceptowanych odpowiedzi (może być to, że będzie jeden pomóc).
Czy ktoś może mi pomóc, w jaki sposób mogę się zalogować na stronie?
Używam java i jsoup.
EDIT
Próbowałem też poniżej kod, ale wciąż nie ma szczęścia
Connection.Response loginForm = Jsoup.connect("http://www.investabroadproperties.com/")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1")
.method(Connection.Method.GET)
.execute();
Document doc = loginForm.parse();
Elements hiddenElems = doc.select("input[type=hidden]");
Map<String, String> nameValue = new HashMap<>();
for(Element elem : hiddenElems) {
nameValue.put(elem.attr("name"), elem.attr("value"));
}
Document document = Jsoup.connect("http://www.investabroadproperties.com/")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1")
.data("ctl00$ctl02$tbEmail", "myValidEmail")
.data("ctl00$ctl02$tbPassword", "myValidPassword")
.data(nameValue)
.cookies(loginForm.cookies())
.post();
Dlaczego tag java tutaj? – sForSujit
1. Nawet jeśli pole jest puste/ukryte, należy je przesłać. 2. Sprawdź zapytanie pocztowe przeglądarki - zawiera ono dodatkowe pola (z wartościami), takie jak __viewstate. 3. Dodaj swój ciąg agenta użytkownika do swoich żądań. 4. Istnieje niewiele podobnych pytań, takich jak ten - https://stackoverflow.com/questions/31871801/problems-submitting-a-login-form-w-js-/ – TDG
@TDG Proszę zobaczyć zaktualizowany kod. – Junaid