HtmlAgilityPack für C# (.NET): Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

HtmlAgilityPack für C# (.NET): Komplettguide mit Beispielen

1. Was ist HtmlAgilityPack und wofür braucht man es?

HtmlAgilityPack ist eine leistungsstarke Bibliothek zum Parsen von HTML-Dokumenten im .NET-Ökosystem (C#, VB.NET, F#). Sie bietet Entwicklern eine komfortable API zum Navigieren, Suchen, Extrahieren und Modifizieren von HTML-Code. Im Gegensatz zu standardmäßigen XML-Parsern wurde HtmlAgilityPack speziell für die Arbeit mit "schmutzigem" HTML entwickelt, das im echten Web häufig vorkommt: nicht geschlossene Tags, fehlerhafte Attribute, verschachtelte Fehler usw. Die Bibliothek korrigiert solche Defekte automatisch und erstellt einen korrekten DOM-Baum.

Wofür wird es benötigt? Zu den wichtigsten Anwendungsfällen gehören: Web Scraping (Datenextraktion von Websites), Automatisierung von Web-Tests, Content-Migration zwischen CMS-Systemen, Analyse von HTML-Berichten, Bereinigung und Normalisierung von HTML-Code sowie die Erstellung eigener HTML-Generatoren. Dank der Unterstützung von XPath und CSS-Selektoren (über eine Erweiterung) können Sie flexibel und präzise die gewünschten Elemente auswählen.

HtmlAgilityPack wird von der Community aktiv unterstützt, ist Open Source und kompatibel mit .NET Framework 4.5+, .NET Core 2.0+, .NET 5/6/7/8 sowie mit Xamarin und Unity. Das macht es zu einem universellen Werkzeug für jeden .NET-Entwickler, der mit HTML arbeitet.

2. Installation

Die Installation der Bibliothek erfolgt über den NuGet Package Manager. Führen Sie einen der folgenden Befehle in der Package Manager Console oder im .NET CLI-Terminal aus:

// Über .NET CLI
dotnet add package HtmlAgilityPack

// Über Package Manager Console
Install-Package HtmlAgilityPack

// Oder über die NuGet-Oberfläche: Nach "HtmlAgilityPack" suchen und die neueste stabile Version installieren

Fügen Sie nach der Installation die using-Direktive am Anfang Ihrer Datei hinzu:

using HtmlAgilityPack;

3. Schnellstart – Minimales Arbeitsbeispiel

Betrachten wir ein einfaches Beispiel: Wir laden einen HTML-String, finden alle Links und geben deren Text und URL aus.

using System;
using HtmlAgilityPack;

class Program
{
    static void Main()
    {
        // 1. HTML-Dokument erstellen
        var htmlDoc = new HtmlDocument();
        
        // 2. HTML laden (in der Praxis könnte es aus einer Datei oder dem Web stammen)
        string html = @"
        
            
                
            








        ";
        htmlDoc.LoadHtml(html);
        
        // 3. Alle <a>-Tags mit XPath auswählen
        var links = htmlDoc.DocumentNode.SelectNodes("//a");
        
        // 4. Jeden Link durchgehen und Text sowie href ausgeben
        if (links != null)
        {
            foreach (var link in links)
            {
                string text = link.InnerText.Trim();
                string href = link.GetAttributeValue("href", "");
                Console.WriteLine($"Text: {text}, URL: {href}");
            }
        }
    }
}

Ergebnis der Ausführung:

Text: Example, URL: https://example.com
Text: PythonLib, URL: https://pythonlib.ru

4. Wichtige Klassen und Methoden

Im Folgenden werden die wichtigsten Klassen und Methoden von HtmlAgilityPack mit detaillierten Beschreibungen und Beispielen vorgestellt.

4.1. HtmlDocument – Die Hauptklasse für die Arbeit mit Dokumenten

Signatur: public class HtmlDocument

Beschreibung: Stellt ein vollständiges HTML-Dokument dar. Ermöglicht das Laden von HTML aus einem String, einer Datei oder einem Stream sowie das Suchen und Mo

Empfehlungen