Thread Parsen von HTML-Inhalten (33 answers)
Opened by Wilson at 2013-07-31 17:40

clms
 2013-08-06 14:04
#169431 #169431
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
2013-08-05T15:34:17 GwenDragon
Solnage das HTML brav in einer Zeile steht, ginge das.
Aber was machst du bei sowas:
Code: (dl )
1
2
3
4
<a 
title = "Berlin"
href = "/wetter/berlin"
>29&#x00B0 C</a>

oder bei &#176; oder &deg;

Ist ja schließlich normales HTML, so. Webseiten werden aucn mal geändert. ;)

Richtig.
Und dann musst Du Deinen Code ohnehin umschreiben, denn es wird aller Erfahrung nach nicht nur der Zeilenumbruch geändert oder die Codierung der Entities. Evtl. ändert sich die URL, evtl. der Titel, aus "29°C" wird evtl. "29 °C" oder aus normalem Whitespace wird &nbsp:, vielleicht steht die gewünschte Information auch nicht mehr direkt in <a>...</a>...

Fazit:
Der Ansatz mit dem Parser ist etwas robuster, weil er bestimmte Mutationen des Inputs abfangen kann. In der Praxis wird das Skript bei einer Änderung der Webseite aber trotzdem ausfallen, weil Du unmöglich alle zukünftigen Änderungen berücksichtigen kannst.

Weil Du zukünftige Änderungen des Inputs nicht kontrollieren kannst, kannst Du ohnehin nur eine "quick & dirty" Lösung für das "hier & jetzt" liefern.
Das geht in so einem einfachen Fall mit Regex prima. Ob Du da Regex oder einen Parser verwendest, hängt von Deinen Vorlieben, Deinen Vorkenntnissen (muss ich mich in ein neues Modul oder die Feinheiten von regex einlesen?) und den auf Deinem System installierten Modulen ab.

View full thread Parsen von HTML-Inhalten