meinzlein: Element mit Class aus HTML-Dom extrahieren

Hallo,

ich möchte aus dem HTML-Dom unter $url die HTML-Element mit der Class (oder wahlweise auch Id) $extract-selector extrahieren.

Wie bekomme ich das am schicksten hin?

Taut dafür http://simplehtmldom.sourceforge.net/ etwas?

Oder gibt es PHP-eigene Mittel um Dom zu parsen und zu durchlaufen?

Grüße

  1. Oder gibt es PHP-eigene Mittel um Dom zu parsen und zu durchlaufen?

    Ungültiges HTML in dein DOM zu überführen ist schwierig - Simple HTML DOM ist da so ziemlich das beste was man bekommen kann. PHP hat build-in nur Vergleichbare Dinge, die aber wohlgeformtes XML erwarten.

    Wenn du also wohlgeformte XHTML-Dokumente hast, kannst du diese z.B. mit SimpleXML parsen.

    Ansonsten, bleib bei HTML DOM um den "Dreck" zu parsen.

    1. PHP hat build-in nur Vergleichbare Dinge, die aber wohlgeformtes XML erwarten.

      Falsch.

      Mathias

      1. PHP hat build-in nur Vergleichbare Dinge, die aber wohlgeformtes XML erwarten.

        Falsch.

        Ja, mein Wissensstand ist diesbezüglich sehr outdated gewesen.

        Wenn aber die Qualität dieser Funktionen vergleichbar mit der von strip_tags() ist, sollte man davon nicht zu viel erwarten. Simple HTML DOM hingegen hat für mich bisher immer zufriedenstellend funktioniert.

        1. Ja, mein Wissensstand ist diesbezüglich sehr outdated gewesen.

          Noch vor Juli 2004 (PHP 5)? ;)

          Wenn aber die Qualität dieser Funktionen vergleichbar mit der von strip_tags() ist, sollte man davon nicht zu viel erwarten.

          Das DOM-Modul nutzt libxml, auch für das HTML-Parsing. Wie es mit HTML-Parsing steht, habe ich nicht ausführlich getestet, aber ansonsten ist libxml als zuverlässig bekannt.

          Mittlerweile gibt es ja auch HTML5-konforme HTML-Parser in PHP.

          Mathias

          1. Ja, mein Wissensstand ist diesbezüglich sehr outdated gewesen.

            Noch vor Juli 2004 (PHP 5)? ;)

            Ich sagte ja "sehr" :D

            Das ist eher Zeug, welches ich selten brauche. Fremde Seiten lese ich nicht und wenn dann gibts die Inhalte in Aggregationsformaten die idR. "irgendwas mit XML" sind.

  2. Hallo,

    ich möchte aus dem HTML-Dom unter $url die HTML-Element mit der Class (oder wahlweise auch Id) $extract-selector extrahieren.

    Wie bekomme ich das am schicksten hin?

    Taut dafür http://simplehtmldom.sourceforge.net/ etwas?

    Oder gibt es PHP-eigene Mittel um Dom zu parsen und zu durchlaufen?

    http://php.net/manual/de/class.domdocument.php

    Gruß

    jobo