Ich entwickle eine Anwendung für meine Schulwebsite und verwende jsoup zum Parsen des HTML-Codes.

Ich habe ein Problem mit dem Captcha-Bild, das ich dieser Frage sehe und das ich aber implementiert hatte Ich erhalte nicht das gleiche Bild wie auf der Website.

Wie kann ich das gleiche Bild-Captcha erhalten? Die Website verwendet BotDetectCaptcha . Ich bin ein wenig verwirrt, wie ich es speziell auf meiner Website tun kann

Schulwebsite

enter image description here

4
Jonathan Axel 27 Dez. 2015 im 23:26

2 Antworten

Beste Antwort

Wie in SLaks Kommentar angegeben, fehlen möglicherweise einige Cookies.

Hier ist ein Arbeitsbeispiel mit der angegebenen URL:

// Load the initial page for getting the required cookies
Connection conn = Jsoup.connect("https://www.saes.upiicsa.ipn.mx/");
Document d = conn.get();

Element captcha = d.select("#c_default_ctl00_leftcolumn_loginuser_logincaptcha_CaptchaImage").first();
if (captcha == null) {
    throw new RuntimeException("Unable to find captcha...");
}

// Fetch the captcha image
Connection.Response response = Jsoup //
        .connect(captcha.absUrl("src")) // Extract image absolute URL
        .cookies(conn.response().cookies()) // Grab cookies
        .ignoreContentType(true) // Needed for fetching image
        .execute();

// Load image from Jsoup response
ImageIcon image = new ImageIcon(ImageIO.read(new ByteArrayInputStream(response.bodyAsBytes())));

// Show image
JOptionPane.showMessageDialog(null, image, "Captcha image", JOptionPane.PLAIN_MESSAGE);

AUSGABE

enter image description here

Getestet mit JSoup 1.8.3

8
Stephan 28 Dez. 2015 im 10:15

Sie sagten, dass Sie nicht das gleiche Bild erhalten, das Sie auf der Website sehen ... Das ist normal, da das Bild jedes Mal anders ist, wenn Sie die Seite aktualisieren.

1
Maial 27 Dez. 2015 im 20:33