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]
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].
We kunnen het document en de elementen ervan inspecteren door de onderstaande stappen te volgen:
Laad een HTML-document met de klasse [HTMLDocument][10].
Haal het HTML-element van het document op.
Haal de eerste/laatste elementen van het HTML-element op.
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:
Definieer filters met behulp van de NodeFilter-klasse en negeer de AcceptNode()-methode.
Laad een HTML-document met de klasse [HTMLDocument][10].
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#.
We kunnen XPath Query ook gebruiken om gegevens uit een HTML-document op te vragen door de onderstaande stappen te volgen:
Laad een HTML-document met de klasse [HTMLDocument][10].
Roep de methode Evalueren() aan. Er zijn XPath-expressiestring, document en type nodig als argumenten.
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#.
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:
Laad een HTML-document met de klasse [HTMLDocument][10].
Roep de methode QuerySelectorAll() aan. Het neemt de querykiezer als argument.
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#.
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].