Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich habe ein Programm das von Websiten den Text einließt, das einzige Problem bei der ganzen Sache ist das Man die Seiten immer wieder neu in die Konsole eingeben muss. Ich will aber das die Internetseiten schon vor eingegeben sind damit damit man die eben nicht immer wieder eintragen muss.
public void Inhalt(InputStream url) {
try {
BufferedReader reader2 = new BufferedReader(new InputStreamReader(url)); //PROBLEM
site_secondRequest = Jsoup.connect(reader2.readLine()).timeout(0).data().get();
Elements tags_secondRequest = site_secondRequest.select("p");
for (int i = 0; i < tags_secondRequest.size(); i++) {
text = text + (tags_secondRequest.get(i).text());
System.out.println(text);
}
} catch (Exception e) {
e.printStackTrace();
}
s = new Scanner(text);
}
Und hier der Code zum einfügen der URL:
Code:
URL url = new URL("http://vertretung.esy.es/first.html");
getURL(url.openStream());
Dann sagt das Programm : "The method getURL(InputStream) is undefined for the type Tabelle1"
URL url = new URL("http://vertretung.esy.es/first.html");
Inhalt(url.openStream());
Dann kommt eine Fehlermeldung (Wenn man es ausführt) :
java.lang.IllegalArgumentException: Malformed URL: <!DOCTYPE HTML>
at org.jsoup.helper.HttpConnection.url(HttpConnection.java:101)
at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:43)
at org.jsoup.Jsoup.connect(Jsoup.java:73)
at Tabelle1.Inhalt(Tabelle1.java:112)
at Tabelle1.start(Tabelle1.java:51)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.MalformedURLException: no protocol: <!DOCTYPE HTML>
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at org.jsoup.helper.HttpConnection.url(HttpConnection.java:99)
... 13 more
Dein Problem ist, dass du JSoup den Inhalt der Seite übergibst, und nicht die URL zu der Seite.
Anstatt selbst die Verbindung zu öffnen und den Inhalt der Seite auszulesen, musst du einfach die URL übergeben, siehe JavaDoc: https://jsoup.org/apidocs/org/jsoup/Jsoup.html#connect-java.lang.String-