Webschrapen met C#

Webscraping is een techniek die wordt gebruikt om gegevens van websites te extraheren. Het helpt het proces van het extraheren van gegevens van websites en [HTML][16]-bestanden te automatiseren. Als C#-ontwikkelaar kunnen we eenvoudig gegevens, zoals afbeeldingen, video, audio, enz., van de webpagina’s inspecteren, vastleggen en extraheren. In dit artikel leren we hoe we webscraping kunnen uitvoeren met HTML-parsing met behulp van C#. In dit artikel komen de volgende onderwerpen aan bod:

  • [C# Webscraping-API][1]
  • [HTML lezen en extraheren met C#][2]
  • [Documentelementen inspecteren met C#][3]
  • [Specifiek element zoeken met behulp van filters in C#][4]
  • [Query gegevens uit HTML met behulp van C#][5]
  • [Uitpakken met behulp van CSS Selector in C#][6]

C# Web Scraping-API

Voor webscraping van HTML-bestanden of URL’s gebruiken we [Aspose.HTML for .NET][7] API. Het is een geavanceerde HTML-verwerkings-API waarmee u zonder externe software gegevens kunt genereren, wijzigen, extraheren en HTML-documenten kunt converteren en weergeven. [Download][8] de DLL van de API of installeer deze met [NuGet][9].

PM> Install-Package Aspose.Html

HTML lezen en extraheren met C#

We kunnen HTML uit elk HTML-document lezen en extraheren door de onderstaande stappen te volgen:

  1. Laad een HTML-document met de klasse [HTMLDocument][10].
  2. Geef de interne HTML van het bestand weer op de console. Het volgende codevoorbeeld laat zien hoe u HTML-inhoud kunt lezen en extraheren met C#.
    HTML lezen en extraheren met C#.

    HTML lezen en extraheren met C#.

    Op dezelfde manier kunnen we HTML lezen en extraheren van live websites, zoals hieronder weergegeven:

Documentelementen inspecteren met C#

We kunnen het document en de elementen ervan inspecteren door de onderstaande stappen te volgen:

  1. Laad een HTML-document met de klasse [HTMLDocument][10].
  2. Haal het HTML-element van het document op.
  3. Haal de eerste/laatste elementen van het HTML-element op.
  4. Toon elementdetails zoals TagName, TextContent. Het volgende codevoorbeeld laat zien hoe u de documentelementen kunt inspecteren met C#.

Zoek een specifiek element met behulp van filters in C#

We kunnen aangepaste filters gebruiken om een specifiek element te vinden, zoals alle afbeeldingen, links, enz. Voor dit doel biedt de API de TreeWalker-interface. Het maakt het mogelijk om door een documentboom of subboom te navigeren met behulp van de weergave van het document dat is gedefinieerd door hun whatToShow-vlaggen en filter (indien aanwezig). We kunnen specifieke elementen vinden met behulp van filters door de onderstaande stappen te volgen:

  1. Definieer filters met behulp van de NodeFilter-klasse en negeer de AcceptNode()-methode.
  2. Laad een HTML-document met de klasse [HTMLDocument][10].
  3. Roep de methode CreateTreeWalker() aan. Er zijn root node, wat te tonen en NodeFilter nodig als argumenten. Het volgende codevoorbeeld laat zien hoe u specifieke elementen kunt vinden met C#.

Vraag gegevens op uit HTML met behulp van C#

We kunnen XPath Query ook gebruiken om gegevens uit een HTML-document op te vragen door de onderstaande stappen te volgen:

  1. Laad een HTML-document met de klasse [HTMLDocument][10].
  2. Roep de methode Evalueren() aan. Er zijn XPath-expressiestring, document en type nodig als argumenten.
  3. Loop ten slotte door de resulterende knooppunten en geef tekst weer Het volgende codevoorbeeld laat zien hoe u gegevens opvraagt met XPath-query’s met behulp van C#.

Extraheren met behulp van CSS Selector in C#

We kunnen ook HTML-inhoud extraheren met behulp van CSS-kiezers. Voor dit doel biedt de API de methode [QuerySelectorAll()][11] die navigatie door een HTML-document mogelijk maakt en de benodigde elementen doorzoekt. Het neemt de queryselector als parameter en retourneert een overeenkomende NodeList van alle elementen. We kunnen query’s uitvoeren met behulp van CSS-kiezers door de onderstaande stappen te volgen:

  1. Laad een HTML-document met de klasse [HTMLDocument][10].
  2. Roep de methode QuerySelectorAll() aan. Het neemt de querykiezer als argument.
  3. Loop ten slotte door de resulterende lijst met elementen. Het volgende codevoorbeeld laat zien hoe HTML-inhoud wordt geëxtraheerd met behulp van CSS-kiezers in C#.

Ontvang een gratis licentie

Probeer de API zonder evaluatiebeperkingen door [een gratis tijdelijke licentie][12] aan te vragen.

Conclusie

In dit artikel hebben we geleerd hoe u:

  • de inhoud van een HTML-document lezen en extraheren met behulp van C#;
  • inspecteer documentelementen en vind een specifiek element uit HTML;
  • query-specifieke gegevens en extraheer gegevens met behulp van CSS Selector. Bovendien kunt u meer leren over Aspose.HTML voor .NET API met behulp van de [documentatie][13]. Neem bij onduidelijkheden gerust contact met ons op via het [forum][14].

Zie ook