LastBoyScout: Daten aus einer HTML- Seite Extrahieren

Beitrag lesen

Hallo zusammen,

Habe nach längerer Zeit mal wieder ein Problem...

Ich möchte gerne mittels PHP preg_match Daten aus einer HTML- Seite extrahieren. Da ich bei regex immer wie das sprichwörtliche Schwein ins Uhrwerk schaue, habe ich noch nicht mal die kleinste Idee wie das Suchmuster dafür erstellt werden muss!?

<html>
<head>
<title>Tabellenwerte Extrahieren</title>
</head>
<body>
<div class="navigation"><a href="javascript:self.close();">schließen</a></div>
...
<div class="content">
<img src="http://localhost/img/Gesamtbild.gif" border="0" title="Gesamtbild" alt="Gesamtbild" />
<br />&nbsp;
<table cellpadding="3" cellspacing="0" bgcolor="#ffffff" border="0" style="background:#fff;">
<tr class="th"><th>Nummer</th><th>Bild</th><th>Typ</th><th>Bezeichnung</th></tr>
<tr class="odd"><td>1</td><td><img src="http://localhost/img/Bild1.gif" alt="A" /></td><td><strong>I</strong></td><td>Eins</td></tr>
<tr class="even"><td>2</td><td><img src="http://localhost/img/Bild2.gif" alt="B" /></td><td><strong>II</strong></td><td>Zwei</td></tr>
<tr class="odd"><td>3</td><td><img src="http://localhost/img/Bild3.gif" alt="C" /></td><td><strong>III</strong></td><td>Drei</td></tr>
</table>
</div>
...
</body>
</html>
Array
(
    [0] => http://localhost/img/Gesamtbild.gif
    [1] => Array
        (
            [Nummer] => 1
            [Bild] => http://localhost/img/Bild1.gif
            [Typ] => I
            [Bezeichnung] => Eins
        )
    [2] => Array
        (
            [Nummer] => 2
            [Bild] => http://localhost/img/Bild2.gif
            [Typ] => II
            [Bezeichnung] => Zwei
        )
    [3] => Array
        (
            [Nummer] => 3
            [Bild] => http://localhost/img/Bild3.gif
            [Typ] => III
            [Bezeichnung] => Drei
        )
)

Vermutlich müsste man als erstes mal alles bis auf <div class="content">...</div> rausschmeißen. Dann die URL des "Gesamtbild" extrahieren (wobei diese nicht unbedingt mit in das gleiche Array muss). Und zum Schluss die Tabellenzeilen identifizieren und deren Feldinhalte rausholen.

Für den ersten Punkt hab ich noch ne Idee: "/<div class="content">(.*?)</div>/" aber dann ist bei mir gähnende Leere... Hoffe Ihr könnt mir Helfen.

akzeptierte Antworten