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:
- Laad een HTML-document met de klasse [HTMLDocument][10].
- 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#. 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:
- 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#.
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:
- 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#.
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:
- 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#.
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
- [C# Converteer HTML naar JPG-, PNG-, BMP- en GIF-afbeelding met .NET][15] [1]: #CSharp-Web-Scraping-API [2]: #Read-and-Extract-HTML-using-CSharp [3]: #Inspect-Document-Elements-using-CSharp [4]: #Find-Specific-Element-using-Filters-in-CSharp [5]: #Query-Data-from-HTML-using-CSharp [6]: #Extract-using-CSS-Selector-in-CSharp [7]: https://products.aspose.com/html/net/ [8]: https://releases.aspose.com/html/net/ [9]: https://www.nuget.org/packages/aspose.html [10]: https://apireference.aspose.com/html/net/aspose.html/htmldocument [11]: https://apireference.aspose.com/html/net/aspose.html.dom/document/methods/queryselectorall [12]: https://purchase.conholdate.com/temporary-license [13]: https://docs.aspose.com/html/net/ [14]: https://forum.aspose.com/c/html/ [15]: https://blog.aspose.com/2020/05/30/html-to-jpg-png-bmp-and-gif-images-csharp/ [16]: https://docs.fileformat.com/web/html/