Почему я не могу войти через jsoup? - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь сделать java-вход на сайт (разногласия).

Я хочу, чтобы он открыл мой браузер и вошел в систему.Затем он должен выйти снова.

Но это не работает.

Мой код:

import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class HttpUrlConnectionExample {

     public static void main(String[] args) throws Exception {

    Connection.Response loginForm = Jsoup
          .connect("https://discordapp.com/app")
          .method(Connection.Method.GET)
          .execute();

        Document doc = loginForm.parse();
        String csrf = doc.select("input[name=csrf]").val();
        Connection.Response response = Jsoup.connect("https://discordapp.com/app")
                .data("email", "myemail")
                .data("pasword", "mypass")
                .data("login", "loginform")
                .data("csrf", csrf)
                .cookies(loginForm.cookies())
                .method(Connection.Method.POST)
                .execute();
        String body = response.body();
        if(body.contains("Welcome")){
            System.out.println("Password incorrect!");
        } else if(body.contains("Gebruikersnaam werd niet gevonden.")){
            System.out.println("Not found username!");
        } else {
            System.out.println("Login successfully!");          
        }

    }
}

1 Ответ

0 голосов
/ 04 октября 2018

jsoup является анализатором HTML и не имеет движка javascript, поэтому он не может выполнить любой javascript, который может быть выполнен до того, как пользователь сможет войти в систему.

Если это так, вы 'Придется прибегнуть к библиотеке, которая поддерживает JavaScript.Один такой, как HtmlUnit или Selenium.

...