2009-06-16 9 views
2

Ich brauche einen Ratschlag für ein Projekt, das ich beginne.Beratung benötigt: Screen Scraping einer Webseite mit. NET

In wenigen Worten, meine Bewerbung muss zu einer bestimmten Fußball-Website gehen, laden Sie die HTML-und extrahieren Sie die notwendigen Daten.

Dies ist, was ich bisher getan haben.

:: 1) Gehen Sie zu einem bestimmten Fußball Website (ex http://www.livescore.com/default.dll?page=england) und laden Sie die HTML-WebClient.

:: 2) Mit SgmlReader die HTML zu XML konvertieren

:: 3) XmlDocument Mit Abrufen der Daten die ich suche. Normalerweise ist dies beinhaltet:

::::::: 3.1) Abrufen von Knoten mit GetElementsByTagName)

::::::: 3,2)() (ex GetElementsByTagName ("tr".) Die Liste der von der GetElementsByTagName() -Methode zurückgegebenen Knoten durchlaufen

Gibt es einen besseren Weg, um das zu tun, was ich versuche?

Ich dachte an LINQ zu XML. Glauben Sie, dass dies die Leistung verbessert?

Alle Vorschläge oder Kommentare würden sehr geschätzt werden!

Antwort

5

Verwenden Sie einfach HTML Agility Pack! http://www.codeplex.com/htmlagilitypack

Auf diese Weise können Sie das Dokument mit XPath abfragen, um die benötigten Knoten zu erhalten. Sie können sogar Firefox Plugin Firebug verwenden, um Ihnen beim Erstellen Ihrer XPath Querys

+0

Ich denke, ich werde das HtmlAgilityPack verwenden, aber alles, was ich fand, war 3 sehr grundlegende Beispiele zusammen mit einem schlechten API Referenz. Kennen Sie eine umfangreichere Dokumentation? –

+0

Sie müssen die XPath-Dokumentation lesen. Was HtmlAgilityPack tut, ist die Unterstützung von XPath-Abfragen in Html – albertein

0

Verwenden Sie einen Dienst wie these guys, die alles für Sie getan haben. Sie können auch einen kostenlosen Dienst wie Dapper verwenden. Ich glaube, dass Sie Daten in verschiedenen Formaten exportieren können, obwohl ich nicht weiß, ob Sie die Daten in Echtzeit abrufen können, haben Sie möglicherweise eine Verzögerung.

Wenn Sie nicht alles intern mit einer Drittanbieterlösung programmieren möchten, sparen Sie Zeit und Geld.

0

Sobald Sie die Daten in XML konvertiert haben, können Sie XSLT verwenden, um sie in eine einfachere XML-Datei zu konvertieren, die für Ihre Zwecke besser geeignet ist. Von dort aus können Sie LINQ to XML verwenden, um die benötigten Daten aus dem XML-Code zu erhalten. Der Vorteil dieses Ansatzes besteht darin, dass er die Website von der Datenerfassung entkoppelt, so dass Sie beim Ändern des Formats der Website einfach die XSLT-Datei ändern können, sodass sie nicht mehr berührt werden muss.

Verwandte Themen