tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
7234
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ToMeFox Tutorials.de Gastzugang
    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=...le-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=...le-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!


    Ich verwende in etwa folgenden code....

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
    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)
             {
               ;
             }
           }
         }
       }
    }
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    (Du musst auch einen gültigen Browser "Faken")

    Schau mal hier:
    http://www.tutorials.de/forum/showth...PURLConnection

    Außerdem gibt es ja noch die Google API:
    http://www.google.com/apis/

    Gruß Tom
     

  3. #3
    ToMeFox Tutorials.de Gastzugang
    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!
     

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    /**
     * 
     */
    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
     

  5. #5
    ToMeFox Tutorials.de Gastzugang
    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.
     

Ähnliche Themen

  1. db auslesen funktioniert nicht :(
    Von Splater im Forum PHP
    Antworten: 5
    Letzter Beitrag: 25.12.08, 02:34
  2. RSS Feed auslesen funktioniert nicht
    Von alex130 im Forum PHP
    Antworten: 8
    Letzter Beitrag: 27.03.08, 17:12
  3. Antworten: 6
    Letzter Beitrag: 27.07.05, 19:48
  4. Auslesen aus DB Funktioniert nicht...
    Von KonjiBenji im Forum PHP
    Antworten: 4
    Letzter Beitrag: 17.11.03, 13:44
  5. Antworten: 0
    Letzter Beitrag: 13.02.03, 10:37