Auslesen einer URL funktioniert nicht...

  • Themenstarter Themenstarter ToMeFox
  • Beginndatum Beginndatum
T

ToMeFox

Hallo!

Ich habe ein Problem während des auslesens einer Url...

Ich versuche den HTML (bzw. Scriptcode) einer Internetadresse anzuzeigen. Bsp: http://google.de/ . Diese URL kann ich problemlos auslesen.
Aber wenn ich versuche http://www.google.de/search?hl=de&q=s&btnG=Google-Suche&meta= auszulesen, erhalte ich den Fehler :

java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.google.de/search?hl=de&q=s&btnG=Google-Suche&meta=
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)

Dieser Fehler (403) steht für Access forbidden... aber wieso Mit dem IE oder FireFox kann ich genau diese URL auch laden! Ich hoffe ihr könnt mir auf die Sprünge helfen!
:-) :confused: :-)

Ich verwende in etwa folgenden code....

Code:
import java.net.URL;
import java.net.MalformedURLException;
import java.io.InputStream;
import java.io.IOException;

public class Test
{
  public static void main(String[] args)
  {
     URL url = null;
     InputStream in = null;
     try
     {
       url = new URL("http://www.google.de/search?hl=de&q=s&btnG=Google-Suche&meta=");
     }
     catch(MalformedURLException m)
     {
        m.printStackTrace();
        System.exit(1);
     }
     
     try
     {
        in = url.openStream();
        for(int aktZeichen=in.read();aktZeichen>=0;aktZeichen=in.read())
        {
          System.out.print((char)aktZeichen);
        }
     }
     catch(IOException e)
     {
        e.printStackTrace();
        System.exit(2);
     }
     finally
     { 
       if(in!=null)
       {
         try
         {
           in.close();
         }
         catch(IOException e)
         {
           ;
         }
       }
     }
   }
}
 
Hallo Thomas!

Danke erstmal!

Das ist zwar nicht exakt das was ich wollte... aber es hilft zu verstehen. Ich frage mich nur welches Protokoll bzw. welches Skript verhindert das ich den HTML - Code auslesen kann... Warum muss ich dafür eine HttpURLConnection erstellen? Also muss ich mich auf der Serverseite quasi mit "Namen und Geschlecht" anmelden bevor der mir zeigt was er zu bieten hat? Ich dachte, dass das downloaden von HTML - Code immer möglich wäre. Naja... das macht auch mehr Sinn!


Danke schön! Und ein großes Lob für die schnelle Beantwortung! :-) :-)
 
Hallo!

Du wolltest ja nicht nur eine Seite auslesen sondern eine Anfrage an Google senden, dann musst du das (IMHO) so machen wie gezeigt.
HttpURLConection explizit zu verwenden war eigentlich gar nicht nötig... hab wahrscheinlich damit ein wenig herumprobiert und das ganze einfach so stehen lassen...

Falls du nur eine Seite auslesen willst geht's auch hiermit:
Code:
/**
 * 
 */
package de.tutorials;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

/**
 * @author Administrator
 * 
 */
public class WebReader {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		URLConnection con = new URL("http://www.tutorials.de").openConnection();
		BufferedReader br = new BufferedReader(new InputStreamReader(con
				.getInputStream()));
		while (br.ready()) {
			System.out.println(br.readLine());
		}

		br.close();
	}
}

Gruß Tom
 
Danke Thomas!

Ich habe wie du oben siehst die gleiche Idee verfolgt wie du hier unten. Ich öffne eine Verbindung, erzeuge einen Stream, aus diesem lese ich.

Mein Ziel war es, den HTML Code einer GOOGLE-Anfrage auszulesen, alle URL-Angaben mit der Endung *.jpg oder *.gif zwischenzuspeichern. Leider scheitere ich an der Anfrage.
Den HTML-Code nach Images zu durchsuchen war kein Problem. Auf anderen Seiten hat dies einwandfrei funktioniert.

Mir ist im Augenblick der Hintergrund noch nicht klar. Was macht ein Mozilla oder IE anders als ich? Was sendet er dem Server wenn er im eine Anfrage auf eine URL gibt?
Ich muss noch soooo viel lernen.

Naja.. ich werde mich wohl mit IMHO (whatever it is) beschäfftigen müssen!
Das werde ich nun tun! ;)


Vielen Dank für die aufgebrachte Zeit.
 
Zurück