robertroth: div container iframes

Beitrag lesen

Liebe Mitdenker, liebe Wissende, liebe Neugierige,

Willst Du aus der verlinkten Seite den Kasten "Das Unternehmen" ausschneiden und woanders wieder einfügen?

Genau.

Mit PHP und den DOMDocument-Klassen geht das ganz klasse, darum nennt man die ja so ;-)

Wie? Wenn ich die komplette "Fremd"-Seite mit PHP lese, habe ich einen String. Gibt es da PHP-Kommandos, DOM im String zu erkennen? (Freude) Dann bitte her damit.

Hatte schon gegrübelt, wie ich das Ende eines mehrfach verschachtelten divs erkenne. Mich interessiert der nackte Teil-Text und die Zeilenumbrüche / Absätze.

Die Ausarbeitung ist später Fleißsache, damit Du auch unter wechselnden Randbedingungen (ist ja schließlich eine Fremndseite) immer das richtige DIV findest oder eben eine Meldung, dass das nicht existiert.

Ich probiere das anhand der von Dir verlinkten Seite mal aus, das entsprechende DIV zu extrahieren und melde mich dann wieder.

Du kannst ja inzwischen schon mal überfliegen, was die Klassen so können:

Ich habe jetzt die Gehübungen soweit fertig, dass ich die gewünschten Daten ausschneiden kann und als HTML-Code in einer Datei abspeichern kann. Da das Dokument allerdings nicht wirklich sauber aufgebaut ist (1) und es andere in der Praxis auch nicht sein werden, müsste man nun ein skalierbares Tool draus machen, in dem man einfach Checkboxen anklickt, welche Inhalte man haben möchte.

(1) der Document-Baum springt ziemlich hin und her mit den Eltern-Kind-Beziehungen. Was optisch wie ein zusammengehöriger Bereich aussieht, ist leider eine ziemliche Hasenjagd.

Meine Testdatei ist jetzt auch noch ziemlich voll mit auskommentierten Zeilen, weil ich immer nur den Teil aktiv gelassen habe, der gerade gebraucht wurde. Du brauchst dann aber eigentlich alles, in jeweils passender Zusammensetzung.

Das ist ungefähr der Weg:

  • neues DOM erzeugen
  • Datei einlesen
  • X-Tree-Darstellung erzeugen und anzeigen lassen (das ist die praktischste und kompakteste Übersicht)

folgendes eventuell mehrfach wiederholen:

  • in der X-Tree-Darstellung die Nodes ermitteln, die man haben möchte
  • aus dem Einsprungspunkt in X-Tree-Darstellung die Startnode ermitteln

extrahiertes HTML (oder die nackten Daten) sichern:

  • neues Dokument erzeugen
  • ab der Startnode die selectierten Nodes rekursiv importieren
  • importierte Nodes in das neue DOM einhängen
  • neues DOM als Datei exportieren

Ich schreibe das noch zusammen (und sollte eigentlich gleich einen kleinen Artikel für das Wiki daraus machen. Leider kenn ich mich damit noch nicht aus, wie das geht).

Spirituelle Grüße
Euer Robert
robert.r@online.de

--
Möge der wahre Forumsgeist ewig leben!