Webscraping en C# ;

This article was translated from English: Does it need improvement?
Translated
View the article in English

Qu'est-ce qu'IronWebscraper ?

IronWebscraper est une bibliothèque de classes et un framework pour C# et la plateforme de programmation .NET qui permet aux développeurs de lire par programme les sites web et d'en extraire le contenu. Il est idéal pour la rétro-ingénierie de sites web ou d'intranets existants et leur transformation en bases de données ou en données JSON. C'est également utile pour télécharger de grands volumes de documents depuis Internet.

À bien des égards, Iron Web Scraper est similaire à la bibliothèque Scrapy pour Python, mais il tire parti des avantages de C#, en particulier de sa capacité à parcourir le code pendant le processus de balayage du web et à le déboguer.

Installation

Votre première étape sera d'installer IronWebscraper, que vous pouvez faire à partir deNuGet ou par téléchargement de la DLLde notre site Web.

Toutes les classes dont vous aurez besoin se trouvent dans l'espace de noms Iron Web Scraper.

PM > Install-Package IronWebScraper

Cas d'utilisation populaires

Migration de sites web vers des bases de données

IronWebScraper fournit les outils et les méthodes qui vous permettront de reconfigurer vos sites web en bases de données structurées. Cette technologie est utile lors de la migration du contenu des sites web et intranets existants vers votre nouvelle application C#.

Migration de sites web

La possibilité d'extraire facilement le contenu d'un site web partiel ou complet en C# réduit le temps et les coûts liés à la migration ou à la mise à niveau des ressources d'un site web ou d'un intranet. Cette méthode peut s'avérer nettement plus efficace que les transformations SQL directes, car elle aplatit les données de manière à ce qu'elles soient visibles sur chaque page web et ne nécessite pas la compréhension des structures de données SQL précédentes, ni la construction de requêtes SQL complexes.

Alimentation des index de recherche

Iron Web Scraper peut être dirigé vers votre propre site web ou intranet pour lire les données structurées, lire chaque page et extraire les données correctes afin qu'un moteur de recherche au sein de votre organisation puisse être alimenté avec précision.

IronWebscraper est un outil idéal pour récupérer du contenu pour votre index de recherche. Une application de recherche telle qu'IronSearch peut lire le contenu structuré d'IronWebscraper pour créer un puissant système de recherche d'entreprise.

Utilisation d'Iron Webscraper

Pour apprendre à utiliser Iron Web Scraper, le mieux est de regarder des exemples. Cet exemple de base crée une classe qui récupère les titres d'un blog de site web.

using IronWebScraper;

namespace WebScrapingProject
{
    class MainClass
    {
        public static void Main(string [] args)
        {
            var scraper = new BlogScraper();
            scraper.Start();
        }
    }

    class BlogScraper : WebScraper
    {
        public override void Init()
        {
            this.LoggingLevel = WebScraper.LogLevel.All;
            this.Request("https://ironpdf.com/blog/", Parse);
        }

        public override void Parse(Response response)
        {
            foreach (var title_link in response.Css("h2.entry-title a"))
            {
                string strTitle = title_link.TextContentClean;
                Scrape(new ScrapedData() { { "Title", strTitle } });
            }

            if (response.CssExists("div.prev-post > a [href]"))
            {
                var next_page = response.Css("div.prev-post > a [href]")[0].Attributes ["href"];
                this.Request(next_page, Parse);
            }
        }
    }
}
using IronWebScraper;

namespace WebScrapingProject
{
    class MainClass
    {
        public static void Main(string [] args)
        {
            var scraper = new BlogScraper();
            scraper.Start();
        }
    }

    class BlogScraper : WebScraper
    {
        public override void Init()
        {
            this.LoggingLevel = WebScraper.LogLevel.All;
            this.Request("https://ironpdf.com/blog/", Parse);
        }

        public override void Parse(Response response)
        {
            foreach (var title_link in response.Css("h2.entry-title a"))
            {
                string strTitle = title_link.TextContentClean;
                Scrape(new ScrapedData() { { "Title", strTitle } });
            }

            if (response.CssExists("div.prev-post > a [href]"))
            {
                var next_page = response.Css("div.prev-post > a [href]")[0].Attributes ["href"];
                this.Request(next_page, Parse);
            }
        }
    }
}
Imports IronWebScraper

Namespace WebScrapingProject
	Friend Class MainClass
		Public Shared Sub Main(ByVal args() As String)
			Dim scraper = New BlogScraper()
			scraper.Start()
		End Sub
	End Class

	Friend Class BlogScraper
		Inherits WebScraper

		Public Overrides Sub Init()
			Me.LoggingLevel = WebScraper.LogLevel.All
			Me.Request("https://ironpdf.com/blog/", AddressOf Parse)
		End Sub

		Public Overrides Sub Parse(ByVal response As Response)
			For Each title_link In response.Css("h2.entry-title a")
				Dim strTitle As String = title_link.TextContentClean
				Scrape(New ScrapedData() From {
					{ "Title", strTitle }
				})
			Next title_link

			If response.CssExists("div.prev-post > a [href]") Then
				Dim next_page = response.Css("div.prev-post > a [href]")(0).Attributes ("href")
				Me.Request(next_page, AddressOf Parse)
			End If
		End Sub
	End Class
End Namespace
VB   C#

Pour récupérer un site web spécifique, nous devrons créer notre propre classe pour lire ce site web. Cette classe prolongera la classe Web Scraper. Nous ajouterons quelques méthodes à cette classe, notamment init, qui permet de définir les paramètres initiaux et de lancer la première requête, qui provoquera à son tour une réaction en chaîne au cours de laquelle l'ensemble du site web sera scrappé.

Nous devons également ajouter au moins une méthode Parse. Les méthodes d'analyse lisent les pages web qui ont été téléchargées depuis l'internet et utilisent des sélecteurs CSS de type jQuery pour sélectionner le contenu et extraire le texte et/ou les images pertinents à utiliser.

Dans une méthode Parse, nous pouvons également spécifier quels hyperliens nous souhaitons que le crawler continue de suivre et lesquels il ignorera.

Nous pouvons utiliser la méthode "scrape" pour extraire des données et les transférer dans un format de fichier JSON pratique pour une utilisation ultérieure.

Aller de l'avant

Pour en savoir plus sur Iron Web Scraper, nous vous recommandons de lire le document suivantDocumentation de référence de l'APIet commencez à regarder les exemples dans la section tutoriel de notre documentation.

L'exemple suivant que nous vous recommandons d'examiner est celui duExemple de webscraping "blog" en C#nous y apprenons comment extraire le contenu textuel d'un blog, tel qu'un blog WordPress. Cela peut s'avérer très utile lors d'une migration de site.

À partir de là, vous pouvez vous pencher sur les autrestutoriel avancé d'extraction de données web où nous pouvons examiner des concepts tels que les sites web avec de nombreux types de pages différents, les sites web de commerce électronique, et aussi comment utiliser plusieurs proxies, identités et logins lors de l'extraction de données sur Internet.