Extraction de données Web 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 des sites web par programmation et d'en extraire le contenu. C'est idéal pour la rétro-ingénierie de sites web ou d'intranets existants et leur reconversion en bases de données ou en données JSON. Il est également utile pour télécharger de gros volumes de documents depuis Internet.

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

Installation

Votre première étape consistera à installer Iron Web Scraper, ce que vous pouvez faire à partir de NuGet ou en téléchargeant la DLL depuis notre site web.

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

Install-Package IronWebScraper

Cas d'utilisation courants

Migration de sites web vers des bases de données

IronWebScraper fournit les outils et les méthodes permettant de réorganiser vos sites web en bases de données structurées. Cette technologie est utile lors de la migration de contenu depuis d'anciens sites web et intranets 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 les coûts et les délais liés à la migration ou à la mise à niveau des ressources de sites web et d'intranet. Cette méthode peut s'avérer nettement plus efficace que les transformations SQL directes, car elle aplatit les données pour qu'elles soient visibles sur chaque page web, sans nécessiter la compréhension des structures de données SQL précédentes ni la construction de requêtes SQL complexes.

Remplissage des index de recherche

Iron Web Scraper peut être configuré pour analyser votre propre site web ou intranet afin de lire les données structurées, de parcourir chaque page et d'extraire les données pertinentes pour alimenter correctement un moteur de recherche au sein de votre organisation.

IronWebScraper est un outil idéal pour extraire du contenu pour votre index de recherche. Une application de recherche telle qu'IronSearch peut lire le contenu structuré d'IronWebScraper pour construire un système de recherche d'entreprise puissant.

Utilisation du grattoir à toile en Iron

Pour apprendre à utiliser Iron Web Scraper, le mieux est de regarder des exemples. Cet exemple basique crée une classe permettant d'extraire 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
    {
        // Initialize scraper settings and make the first request
        public override void Init()
        {
            // Set logging level to show all log messages
            this.LoggingLevel = WebScraper.LogLevel.All;

            // Request the initial page to start scraping
            this.Request("https://ironpdf.com/blog/", Parse);
        }

        // Method to handle parsing of the page response
        public override void Parse(Response response)
        {
            // Loop through each blog post title link found by CSS selector
            foreach (var title_link in response.Css("h2.entry-title a"))
            {
                // Clean and extract the title text
                string strTitle = title_link.TextContentClean;

                // Store the extracted title for later use
                Scrape(new ScrapedData() { { "Title", strTitle } });
            }

            // Check if there is a link to the previous post page and if exists, follow it
            if (response.CssExists("div.prev-post > a[href]"))
            {
                // Get the URL for the next page
                var next_page = response.Css("div.prev-post > a[href]")[0].Attributes["href"];

                // Request the next page to continue scraping
                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
    {
        // Initialize scraper settings and make the first request
        public override void Init()
        {
            // Set logging level to show all log messages
            this.LoggingLevel = WebScraper.LogLevel.All;

            // Request the initial page to start scraping
            this.Request("https://ironpdf.com/blog/", Parse);
        }

        // Method to handle parsing of the page response
        public override void Parse(Response response)
        {
            // Loop through each blog post title link found by CSS selector
            foreach (var title_link in response.Css("h2.entry-title a"))
            {
                // Clean and extract the title text
                string strTitle = title_link.TextContentClean;

                // Store the extracted title for later use
                Scrape(new ScrapedData() { { "Title", strTitle } });
            }

            // Check if there is a link to the previous post page and if exists, follow it
            if (response.CssExists("div.prev-post > a[href]"))
            {
                // Get the URL for the next page
                var next_page = response.Css("div.prev-post > a[href]")[0].Attributes["href"];

                // Request the next page to continue scraping
                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

		' Initialize scraper settings and make the first request
		Public Overrides Sub Init()
			' Set logging level to show all log messages
			Me.LoggingLevel = WebScraper.LogLevel.All

			' Request the initial page to start scraping
			Me.Request("https://ironpdf.com/blog/", AddressOf Parse)
		End Sub

		' Method to handle parsing of the page response
		Public Overrides Sub Parse(ByVal response As Response)
			' Loop through each blog post title link found by CSS selector
			For Each title_link In response.Css("h2.entry-title a")
				' Clean and extract the title text
				Dim strTitle As String = title_link.TextContentClean

				' Store the extracted title for later use
				Scrape(New ScrapedData() From {
					{ "Title", strTitle }
				})
			Next title_link

			' Check if there is a link to the previous post page and if exists, follow it
			If response.CssExists("div.prev-post > a[href]") Then
				' Get the URL for the next page
				Dim next_page = response.Css("div.prev-post > a[href]")(0).Attributes("href")

				' Request the next page to continue scraping
				Me.Request(next_page, AddressOf Parse)
			End If
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Pour extraire des données d'un site web spécifique, nous devrons créer notre propre classe pour lire ce site. Cette classe étendra la classe Web Scraper. Nous ajouterons quelques méthodes à cette classe, notamment Init , qui nous permettra de définir les paramètres initiaux et de lancer la première requête, ce qui provoquera une réaction en chaîne où l'intégralité du site web sera analysée.

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

Dans une méthode Parse , nous pouvons également spécifier les hyperliens que nous souhaitons que le robot d'exploration continue de suivre et ceux qu'il ignorera.

Nous pouvons utiliser la méthode Scrape pour extraire des données et les enregistrer 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 la documentation de référence de l'API , puis de consulter les exemples de la section tutoriels de notre documentation.

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

À partir de là, vous pouvez consulter d'autres exemples de tutoriels avancés sur le web scraping, où nous aborderons des concepts tels que les sites web comportant de nombreux types de pages, les sites de commerce électronique, et également comment utiliser plusieurs proxys, identités et identifiants lors de l'extraction de données sur Internet.

Darrius Serrant
Ingénieur logiciel Full Stack (WebOps)

Darrius Serrant est titulaire d'un baccalauréat en informatique de l'université de Miami et travaille comme ingénieur marketing WebOps Full Stack chez Iron Software. Attiré par le codage dès son plus jeune âge, il a vu l'informatique comme à la fois mystérieuse et accessible, en faisant le ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 125,527 | Version: 2025.11 vient de sortir