So lässt sich HTML-Code mit dem Browser parsen und verarbeiten

Gelegentlich muss man HTML parsen, um Daten daraus zu extrahieren. Man kann zwar reguläre Ausdrücke für diese Aufgabe verwenden, aber das ist nicht ganz die richtige Herangehensweise. Außerdem verschwendet man viel Zeit damit, den ganzen Code zu schreiben. ZDNet zeigt, wie es einfacher geht.

Als Beispiel dient ein spezielles Projekt, eine Applikation, die sich Einträge auf Blogs anschaut und den eigentlichen Text, die Überschrift und den Zeitstempel ausliest, so dass man sie in ein anderes CMS importieren kann. Im Folgenden werden einige der Erfahrungen mit diesem Projekt beschrieben. Die Erkenntnisse daraus sollen das nächste Mal nützlich sein, wenn HTML-Code geparst werden muss.

Zum Parsen des HTML-Codes wird das Webbrowser-Steuerelement verwendet, ein .NET-Wrapper um das Internet-Explorer-ActiveX-Steuerelement. Mit dieser Komponente erledigt der Internet Explorer die Hauptarbeit hinsichtlich Parsen der Webseite und Bereitstellen der Eigenschaften. Jetzt muss man nur noch wissen, wie man an die Informationen herankommt. Leider weist der .NET-Wrapper nicht alle erforderlichen Funktionen auf, was eine zusätzliche Herausforderung darstellt.

Das Steuerelement zu instantiieren ist leicht – dafür muss nur der Standard-Konstruktor aufgerufen werden. Die Verarbeitung wird im Hintergrund erledigt, und dem Anwender muss kein Browser gezeigt werden. Um das Steuerelement auf eine Seite zu richten, kann man entweder die URL-Eigenschaft angeben oder die Navigate-Methode aufrufen.

Hier wird die Sache knifflig: Das Steuerelement macht alles asynchron, daher blockieren diese Aufrufe nichts. Wenn man versucht, auf das Dokument zuzugreifen, ist es wahrscheinlich noch nicht fertig, und man sieht lediglich ein leeres Dokument. Doch um die Sache noch komplizierter zu machen, kann man auch nicht einfach an der ReadyState-Eigenschaft drehen – man muss einen Aufruf von Application.DoEvents in diese Schleife einfügen, sonst wird die ReadyState-Eigenschaft nie auf Complete wechseln. Hier der dafür verwendete Code:



Wenn diese Schleife beendet wird, ist das Dokument vollständig geladen und kann verwendet werden. Das Projekt muss einen Verweis auf mshtml.tlb enthalten, und der Code muss mshtml verwenden beziehungsweise importieren.

Themenseiten: Software, Webentwicklung

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

ZDNet für mobile Geräte
ZDNet-App für Android herunterladen Lesen Sie ZDNet-Artikel in Google Currents ZDNet-App für iOS

Artikel empfehlen:

Neueste Kommentare 

3 Kommentare zu So lässt sich HTML-Code mit dem Browser parsen und verarbeiten

Kommentar hinzufügen
  • Am 16. Mai 2010 um 11:46 von Marker

    Nur für Windows mit Internet Explorer geeignet
    Die Überschrift „…mit dem Browser parsen…“ ist irreführend, weil die beschriebene Methode offenbar die Verwendung des Internet Explorer voraussetzt. Bei allen Rechnern mit den Betriebssystemen wie z.B. MacOS X oder Linux wird es nicht funktionieren.

  • Am 23. Mai 2010 um 19:17 von Marcel Reuter

    Schlechter Artikel
    Ich kann leider beim besten Willen nicht erkennen, an welcher Stelle des Artikels auf das eigentliche Parsen respektive einer Alternative zu reg. Ausdrücken eingegangen wird.

  • Am 9. Juni 2010 um 11:59 von Stephan

    Vorteile?
    Der Artikel hebt anfangs darauf ab, dass reguläre Ausdrücke „nicht ganz die richtige Herangehensweise“ seien, ohne dies im Weiteren auch nur mit einer Zeile zu begründen.

    Im Gegenteil „am Ende kommen wirklich einige reguläre Ausdrücke heraus“!?
    Was soll die eigentliche Aussage des Artikels sein? Dass man den Quellcode durchararbeitet?

    Tut mir leid – ein wirklich schwacher Artikel :-(

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *