Nach dem ersten Teil folgt heute nun der zweite Teil des kleinen Tutorials, in dem erklärt wird, wie man das einfache in C# erstellte Screen-Scraping Tool noch ein wenig optimiert:
7. Wenn der HTML-Quelltext nicht mit IDs ausgezeichnet ist kann man über andere Wege auf das entsprechende Element zugreifen. Eine praktische Möglichkeit ist es, über den Tag-Namen das Element zu finden. Werfen Sie einen Blick auf den Quelltext, wie der Zähler ausgezeichnet ist:
irgendein Zähler <span>0</span> der zählt
Da der Tag <span> nur ein einziges Mal auf der Website verwendet wird ist es einfach. Über den Index [0] kann man auf das erste <span>-Element zugreifen:
HtmlElementCollection elemente = webMeinBrowser.Document.GetElementsByTagName(„span“);
//foreach (HtmlElement elem in elemente) …
MessageBox.Show(elemente[0].InnerHtml.ToString());
Wären es mehrere kann man die entsprechenden Elemente dann mit einem foreach durchlaufen und z. B. über elemente[i].GetAttribute oder . InnerHtml identifizieren.
8. Ein Klick auf die Zahl bzw. den mit <span> ausgezeichnete Bereich erhöht den Zähler. Auch dies können Sie automatisieren – dafür ist RaiseEvent hilfreich (natürlich auch mit allen anderen aus JavaScript bekannten Events möglich). Probieren Sie folgendes aus:
MessageBox.Show(elemente[0].InnerHtml.ToString());
elemente[0].RaiseEvent(„onclick“);
MessageBox.Show(elemente[0].InnerHtml.ToString());
9. Auch das Eingabefeld (id=“eingabe“) lässt sich automatisch ausfüllen, am unkompliziertesten geht das mit SetAttribute:
webMeinBrowser.Document.GetElementById(„eingabe“).SetAttribute(„value“, „Hallo!“);
Das war die kleine Einführung ins Screen-Scraping mit C# – natürlich wird es bei größeren Projekten etwas komplizierter, aber für den ersten Einstieg müssten diese Tutorial eigentlich hilfreich sein.
P.S.
Probleme? Fragen? Anregungen? Ich helfe jederzeit und gerne – einfach einen Kommentar oder Mail schreiben, die Antwort kommt schnellstmöglich. Unternehmen, die Unterstützung, Beratung oder Schulung bei der API- oder Webprogrammierung, der Social-Media-Entwicklung oder dem Social-Media-Management benötigen finden zudem entsprechende Angebote meiner Firma auf der Website www.Frank-IT-Beratung.de