Website auslesen

Viktim

Bekanntes Mitglied
Hallo,

ich hab mal wieder ein kleines Problem...
Und zwar würde ich gerne Daten aus einer Webside auslesen...
Ich hab auch schon ein kleines Programm, dass den HTML Code von meinen selbstgeschriebenen Seiten auslesen kann...
Wenn ich aber probiere eine andere Seite aufzurufen Tritt folgende Exception auf:
Java:
Exception in thread "main" java.net.ConnectException: Die Wartezeit für die Verbindung ist abgelaufen
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
    at sun.net.www.http.HttpClient.New(HttpClient.java:308)
    at sun.net.www.http.HttpClient.New(HttpClient.java:326)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1168)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1104)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:998)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:932)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1512)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)
    at java.net.URL.openStream(URL.java:1038)
    at Websitesauslesen.main(Websitesauslesen.java:12)

mein Programm sieht so aus:
Java:
public class Websitesauslesen {

  public static void main(String[] args) throws Exception {
    Long startzeitpunkt = System.currentTimeMillis();
    URL url = new URL(
        "http://www.javaschubla.de/");
    BufferedReader in = new BufferedReader(
        new InputStreamReader(url.openStream()));

    String inputLine;

    while ((inputLine = in.readLine()) != null) {
      System.out.println(inputLine);
    }

    in.close();
    Long endzeitpunkt = System.currentTimeMillis();
    System.err.println(endzeitpunkt - startzeitpunkt);
  }

}

Was mach ich falsch?
 
Diese Frage kommt hier immer wieder. Ich verstehe einfach nicht wozu das gut sein soll. Mit den ausgelesenen HTML Daten kann man doch eh nichts anfangen.
 
@kiwara das ist mir total egal welche Exception genau geworfen wird. Aber wenn man sich den StackTrace ansieht - sehr zu empfehlen - dann sieht man dass bei Socket#connect ein Fehler auftritt (genau: "Die Wartezeit für die Verbindung ist abgelaufen"). Also URL.openStream() ist nichts anders als URL.openConnection().getInputStream().

Was genau der Grund dafür ist kann ich nicht sagen - kann alles sein, von der Firewall bis hin zur ISP.

PS: Bei mir läuft der Code einwandfrei durch.
 
Achso okay, timeout war auch meine erste Vermutung, aber ich dachte eben aufgrund der Exception, dass dies dann vielleicht doch nicht der Grund ist.
 
Was bedeutet sonst die Zeile: "java.net.ConnectException: Die Wartezeit für die Verbindung ist abgelaufen" für euch?
 

Neue Themen


Zurück
Oben