Du brauchst einen
DOM (Document Object Modell) Parser.
Im
DOM wird dir die gesamte Webseite als Baumstruktur aufbereitet.
Absolute Positionen in
HTML spielen dann keine Rolle mehr.
Wenn du dann ein bestimmtes Element auswählen möchtest, kannst du entweder
eine ralativ starre (*) Technik anwenden und einfach merken, an welchen Kreuzungen
du im Baum abbiegen musst.
Beispiel: /2/5/3 - von der Wurzel in das 2. Child-Element (<body>) dann in das 5. Child-Element und dann in das 3. Child-Element.
*) selbst diese Technik dürfte besser als dein bisheriger Ansatz sein
Du kannst auch den gesamten Restbaum (ausgehend vom <body> Element) nach einem bestimmten Text durchsuchen.
Wird die Stelle gefunden, bist du irgendwo im Baum auf deinem gesuchten Element oder Attribut.
Es ist dann kein Problem, sich im Baum dann eine Ebene hoch und dann zum vorherigen oder nachfolgenden Childelement zu bewegen.
Oder es ist möglich mit XPATH Ausdrücken zu arbeiten. Das wäre dann der Königsweg.
Hier gibt es allerdings das Problem, dass
HTML üblicherweise nicht so sauber geschachtet ist
wie das bei
XML der Fall ist.
Wenn die Seite aber in XHTML geschrieben ist, dann ist es relativ einfach, beliebige Daten
sauber zu extrahieren. Ebenso kann dann die Seite leicht über die Baumstruktur verändert werden.
PS: du solltest dir den Internet Explorer Developer Toolbar installieren.
http://www.microsoft.com/downloads/t...e-2d5e1db91038
Er zeigt dir (unter anderem) die Baumstruktur und lässt selektierte Element blinken