Quelltext aus einer Internetseite auslese

lonol15

Mitglied
Hi, das funktioniert soweit auch schon ganz gut:
Java:
             final String meineURL = "http://www.imdb.de/title/tt0499549/";
	        
	        URL url = new URL(meineURL);
	        
	        InputStreamReader isr = new InputStreamReader(url.openConnection().getInputStream());
	        BufferedReader br = new BufferedReader(isr);
	 
	        // Kompletten Seiteninhalt auslesen
	        String line ="";
	        String quelltext ="";
	        
	        while((line = br.readLine()) != null)
	        {
	            quelltext += line + "\r\n";
	        }
	        
	        // Reader Schließen
	        br.close();
	        isr.close();
	        
	        
	        // Seiteninhalt ausgeben
	        System.out.println(quelltext);

Zumindest auf den meisten Seiten funktioniert es. Aber wenn Ich es mit der Seite "http://www.imdb.de/title/tt0499549/" ausprobiere funktioniert es nicht.
Wisst ihr wieso das so ist, oder habt ihr Lösungsvorschläge?

mfg lonol15

EDIT:
Die Exception:
Code:
java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.imdb.de/title/tt0499549/
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at Filmverwaltung.main(Filmverwaltung.java:20)
 
Es könnte zB. sein, dass die Seite anhand Useragent etc. zu erkennen versucht,
ob der Zugreifende ein Browser, Suchmaschinenbot etc.etc. ist
und ggf. den Zugriff sperrt, um automatisches Auslesen aller Daten und so zu verhindern.
Hab zwar bei einem schnellen Versuch keine Sperre durch ungewöhnliche Header feststellen können, aber du könntestmal versuchen, deiner Verbindung die Daten eines Browsers zu geben.

Beispiel:
Java:
java.net.URLConnection c = url.openConnection();
c.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");
und dann erst den InputStream holen.
Der lange String ist nur ein Beispiel, hat jeder Browser anders.
 

Neue Beiträge

Zurück