Kim: Daten aus fremden Seiten auslesen

Hi,

ich möchte von einer seite alle daten auslesen die sich zb zwischen <h1><strong> und </strong></h1> befinden. Wie bekomme ich das hin?
(bin ANFÄNGER)

  1. Hi,

    ich möchte von einer seite alle daten auslesen die sich zb zwischen <h1><strong> und </strong></h1> befinden. Wie bekomme ich das hin?

    Als erstes holst du dir die Erlaubnis des Betreibers dieser Seite.

    Und dann beschäftigst du dich damit, wie man in PHP Daten per HTTP einlesen kann, und wie man mit regulären Ausdrücken nach bestimmten Mustern in einem Text suchen kann. (Wobei, wenn die Suchanker statisch und feststehend sind, reichen auch die normalen Stringfunktionen.)

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Als erstes holst du dir die Erlaubnis des Betreibers dieser Seite.

      Und dann beschäftigst du dich damit, wie man in PHP Daten per HTTP einlesen kann, und wie man mit regulären Ausdrücken nach bestimmten Mustern in einem Text suchen kann. (Wobei, wenn die Suchanker statisch und feststehend sind, reichen auch die normalen Stringfunktionen.)

      MfG ChrisB

      danke du hast mich kein stück weiter gebracht

      1. Hi,

        danke du hast mich kein stück weiter gebracht

        Wenn du zu den Leuten gehörst, denen nicht weiter zu helfen ist, indem man ihnen Stichworte an die Hand gibt, über die sie sich informieren sollen - ja, dann kann ich nicht viel für dich tun.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Ich bin ja hier um mich zu informieren aber ich will nicht gleich php studieren sondern nur das eine problem lösen.
          Aber über deine antwort will ich mich ja garnicht beschweren immerhin hast du dir die zeit dafür genommen danke  dafür :D

          1. Aber über deine antwort will ich mich ja garnicht beschweren immerhin hast du dir die zeit dafür genommen danke  dafür :D

            Nein, die Zeit hat er sich _für sich_ genommen.

            1. Nein, die Zeit hat er sich _für sich_ genommen.

              dir danke ich allerdings nicht den mit der antwort hast du mir 30 sekunden meiner zeit gestohlen und ich versteh nichtmal was du damit sagen willst

              1. Nein, die Zeit hat er sich _für sich_ genommen.
                dir danke ich allerdings nicht den mit der antwort hast du mir 30 sekunden meiner zeit gestohlen und ich versteh nichtmal was du damit sagen willst

                Der, an den meine Antwort war, bist nicht Du. Und der, an den sie war, hat sie auch verstanden.
                Es wundert mich aber nicht, dass einer, der weder grammatikalisch noch orthographisch halbwegs fehlerfrei durchs Forum stolpert, meine Intention nicht versteht. Vermutlich hätte das Erlernen o.g. Punkte Dir auch seinerzeit zuviel Zeit gestohlen. ;-)

      2. danke du hast mich kein stück weiter gebracht

        Das ist eine untrügliche Eigenschaft nahezu aller Antworten dieses Users. ;-)

        1. Hi,

          danke du hast mich kein stück weiter gebracht

          Das ist eine untrügliche Eigenschaft nahezu aller Antworten dieses Users. ;-)

          Fachliche Diskussionen gehen schon mal an denen vorbei, die von Tuten und Blasen keine Ahnung haben.

          MfG ChrisB

          --
          RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    2. ich möchte von einer seite alle daten auslesen die sich zb zwischen <h1><strong> und </strong></h1> befinden. Wie bekomme ich das hin?
      Als erstes holst du dir die Erlaubnis des Betreibers dieser Seite.

      Entschuldige ChrisB, aber wozu? Seit wann ist eine explizite Erlaubnis nötig um öffentlich zugängliche Daten zu _lesen_?
      Um mal zwei simple Beispiele zu nennen:
      Ich vermute du fragst den Autor einer Internetpräsenz auch nicht ob du diese ansurfen darfst bevor du dies tust.
      Und um automatische Systeme zu berücksichtigen:
      Suchmaschinen fragen auch nicht ob sie Seiten indizieren dürfen, es muss ihnen explizit verboten werden. (okay, das kann man auch unter "fragen" verstehen).

      Wenn es um Re-Publikation geht, dann hast du wahrscheinlich recht, da sollte man nachfragen und wenn es nur der Höflichkeit halber ist (darum gibt es ja Streit in welchem Rahmen man das darf). Aber beim reinen Auslesen (z.B. zu statistischen Zwecken) sehe ich da eigentlich kein Hindernis.

      --
      sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
  2. Tach auch.

    ich möchte von einer seite alle daten auslesen die sich zb zwischen <h1><strong> und </strong></h1> befinden. Wie bekomme ich das hin?

    Was hast du denn bisher probiert?

    Bis die Tage,
    Matti

    1. Was hast du denn bisher probiert?

      <?php

      echo GetBetween(file_get_contents("http://statistik.de/Cheater06"), '<h1><strong>', '</strong></h1>');

      function GetBetween($content,$start,$end){
          $r = explode($start, $content);
          if (isset($r[1])){
              $r = explode($end, $r[1]);
              return $r[0];
          }
          return '';
      }

      ?>

      das hier hab ich zum auslesen genommen allerdings liest er so nur den ersten eintrag

      1. Tach auch.

        Was hast du denn bisher probiert?

          
        <?php  
          
         echo GetBetween(file_get_contents("http://statistik.de/Cheater06"), '<h1><strong>', '</strong></h1>');  
          
         function GetBetween($content,$start,$end){  
             $r = explode($start, $content);  
             if (isset($r[1])){  
                 $r = explode($end, $r[1]);  
                 return $r[0];  
             }  
             return '';  
         }  
          
        ?>
        

        das hier hab ich zum auslesen genommen allerdings liest er so nur den ersten eintrag

        Dann gehen wir mal Schritt für Schritt durch.
        file_get_contents könnte dir die gewünschte Seite liefern, muss es je nach Serverkonfiguration aber nicht tun. Ich nehme aber mal an, dass du das weißt und beim entwickeln auch schonmal den Inhalt von $content angesehen hast.

        Das erste explode trennt den kompletten Quelltext, den du bekommst, an "<h1><strong>", d.h., du hast dann einen Array mit:
        $r = ( "der seitenanfang", "alles ab dem ersten h1+strong bis zum zweiten", uswusf)
        Du fragst dann nach dem ersten Vorkommen von h1+strong richtigerweise mit $r[1] ab. Warum durchläufst du nicht eine Schleife, die das auch für alle weiteren tut?

          
         function GetBetween($content,$start,$end){  
             $r = explode($start, $content);  
             $ret = array();  
             for ($i = 1; $i < count($r); ++$i) { // $i = 0 ist der Seitenanfang  
                 $t = explode($end, $r[1]); // ich trenne hier in einen anderen Array  
                 array_push($ret, $t[0]);  
             }  
             return $ret;  
         }  
        
        

        Ungetestet.

        Bis die Tage,
        Matti

        1. function GetBetween($content,$start,$end){
               $r = explode($start, $content);
               $ret = array();
               for ($i = 1; $i < count($r); ++$i) { // $i = 0 ist der Seitenanfang
                   $t = explode($end, $r[1]); // ich trenne hier in einen anderen Array
                   array_push($ret, $t[0]);
               }
               return $ret;
          }

           Danke für die schnelle antwort habs einfach mal per copy&paste ausprobiert und leider kommt da nur das wort array im browser -.-
          
          1. Hi,

            Danke für die schnelle antwort habs einfach mal per copy&paste ausprobiert und leider kommt da nur das wort array im browser -.-

            Das liegt daran, dass der Rückgabewert der Funktion ein Array *ist*, denn nur so kann sie (sinnvoll) mehrere Treffer zurückliefern.

            Ein bisschen Grundlagenwissen brauchst du schon, selbst wenn du hier fertigen Code auf dem Silbertablett präsentiert bekommst.

            Wenn du also nicht weißt, was Arrays sind und wie man mit ihnen arbeitet - dann lies dir bitte das entsprechende Kapitel im Manual durch: http://www.php.net/manual/en/language.types.array.php
            (Wenn du mit Englisch nicht klar kommst - dann suche dir ein deutschsprachiges Tutorial, dass dir diese Grundlagen erklärt.)

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?