Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten einer Websiten parsen und ausgeben?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Daten einer Websiten parsen und ausgeben?

    Hallo zusammen,

    ich bin auf der Suche nach einer Möglichkeit bestimmte Tags einer fremden Seite zu parsen/auszulesen und auf einer anderen (meiner) Seite wieder auszugeben...

    Ich müsste doch diesen bestimmten Teil irgendwie in einer ($)variablen speichern können und dann einfach über "echo $variable" ausgeben können, oder nicht?

    Grundkenntnisse in php habe ich aber wirklich weiter komme ich hier nicht..

    Ein Beispiel welche Daten ich gerne hätte :

    eine Seite, die ich gerne auslesen würde:
    http://www.gamestop.de/Xbox%20360/Ga...rlands-2-uncut

    ein Tag, den ich gerne auslesen möchte (der Preis):
    <span class=\"buttPrice\">

    Irgendwelche Lösungsansätze parat ??

    Vielen Dank und Gruß,

  • #2
    file_get_contents()

    Kommentar


    • #3
      file_get_contents() und preg_match() sind deine Lösung. Führ dir diese Funktionen mal zu Gemüte

      Kommentar


      • #4
        DOMDocument eignet sich da eindeutig besser für. Besonders wenn man mehrere Informationen im Nachhinein haben möchte.

        Übrigens solltest du die aufpassen, dass du meistens nicht einfach so Daten kopieren darfst ohne Erlaubnis.

        Kommentar


        • #5
          Für die vorgeschlagene Funktion muß imho allow_url_fopen aktiviert sein!
          Ein Blick in die cURL-Dokumentation bringt m.E. in diesem Falle mehr Erfolg.

          Dann, wie Asterixus bereits gesagt hat: DOMDocument.

          UND
          Zitat von Asterixus
          Übrigens solltest du die aufpassen, dass du meistens nicht einfach so Daten kopieren darfst ohne Erlaubnis.

          Kommentar


          • #6
            Super, vielen Dank für die schnellen Antworten..
            Bin ich auf dem richtigen weg...?
            PHP-Code:
              <?php
              $content 
            file_get_contents("http://www.gamestop.de/Xbox%20360/Games/22872/borderlands-2-uncut");
              
            $preis "<span class=\"buttPrice\>";
              
              
            preg_match($content$preis$treffer);
              
            print_r($treffer);
             
              
            ?>

            Kommentar


            • #7
              Benutze DOMDocument oder den hier: http://simplehtmldom.sourceforge.net/

              Kommentar


              • #8
                Nimm lieber die Varianten von alxy.
                Wenn Du Dich aber doch lieber mit RegEx rumschlagen willst, schau Dir bitte die Doku dazu an.
                So wie Du die Parameter verwendest, kann das nix werden...

                Kommentar


                • #9
                  file_get_contents() und preg_match() sind deine Lösung. Führ dir diese Funktionen mal zu Gemüte
                  mmh, sorry, hab nicht am DOM gedacht, das wäre deutlich besser.

                  Kommentar


                  • #10
                    Okay, dann werd ich mich mal in DOM einarbeiten ..

                    Und ja, die Erlaubnis liegt vor.


                    //edit:

                    Wow, super easy das Ding, klappt wunderbar!
                    Ein Problem habe ich noch, aus dem Tag wird das "€"Zeichen mit ausgelesen und später als " € " ausgegeben.
                    Kann man das irgendwie umgehen..?

                    Gruß

                    Kommentar


                    • #11
                      Ja, mit korrektem Encoding (utf.

                      Kommentar


                      • #12
                        Hi,

                        das Script habe ich letzendlich zum laufen bekommen.. Das wäre also geschafft - oder auch nicht.
                        Im Endeffekt ist das parsen per php doch keine Lösung für meine Anwendung.

                        Da gibts Probleme beim Parsen mehrerer Daten gleichzeitig,
                        zudem dauert das ganze eine halbe Ewigkeit..

                        Nächster Versuch: Seiten per crawler/data-harvester (wie heisst es nun richtig?) auslesen und die benötigten daten in eine .csv schreiben.. Diese in MySQL importieren und dann in tabellen auf der Homepage ausgeben.
                        EIgentlich leicht, bis auf das automatische Daten sammeln..
                        Kann mir jemand einen Tipp geben in welche Richtung ich gehen sollte/könnte ?

                        Gruß

                        Kommentar


                        • #13
                          1. Post #5
                          2. Wozu der Umweg der CSV? Lieber direkt
                          3. ...in Datenbank ablegen
                          4. ausgeben

                          Kommentar


                          • #14
                            Das wäre jetzt auch ein Gag gewesen, wenn Du den Overkill mit Dom genommen hättest. Die machen dort nämlich letztlich AUCH nichts anderes als mit regulären Ausdrücken (oder noch viel komplizierter mit css-Selektoren) die EINE interessierende Stelle zu suchen...

                            Wenn Du die Daten eh schon in einer CSV-Datei hast, wieso willst Du die dann unbedingt zwischendurch nochmal in eine extra Form in der Datenbank bringen? Ist doch schon wieder ein Overkill, oder?!

                            Nimm doch die Dinger einfach aus der CSV-Datei (file() + explode())!

                            Kommentar


                            • #15
                              Zitat von White-Gandalf
                              Das wäre jetzt auch ein Gag gewesen, wenn Du den Overkill mit Dom genommen hättest. Die machen dort nämlich letztlich AUCH nichts anderes als mit regulären Ausdrücken (oder noch viel komplizierter mit css-Selektoren) die EINE interessierende Stelle zu suchen...
                              Wenn du keinen HTML-Parser nutzt, parst du das Dokument nicht als HTML, sondern als willkürliche Folge von Bytes. Das hat andere Vor- und Nachteile.

                              Grundsätzlich ist ein DOM-Parser das korrektere Werkzeug.

                              Bei derlei Aufgaben sollte ohnehin über Caching nachgedacht werden, da vor allem das Abrufen der Daten vom Fremdserver ein potenzieller Performance-Flaschenhals ist.

                              Kommentar

                              Lädt...
                              X