IRONSOFTWAREHOME

Advanced Webscraping Features in C#

Curtis Chau
Curtis Chau
Updated: 29 juin 2026

Fonctionnalité HttpIdentity

Certains systèmes de sites web exigent que l'utilisateur soit connecté pour consulter le contenu ; dans ce cas, nous pouvons utiliser un HttpIdentity. Voici comment vous pouvez le configurer :

// Create a new instance of HttpIdentity
HttpIdentity id = new HttpIdentity();

// Set the network username and password for authentication
id.NetworkUsername = "username";
id.NetworkPassword = "pwd";

// Add the identity to the collection of identities
Identities.Add(id);

L'une des fonctionnalités les plus impressionnantes et puissantes d'IronWebScraper est la possibilité d'utiliser des milliers d'identifiants d'utilisateurs uniques et/ou de moteurs de navigateur pour usurper ou extraire des données de sites Web à l'aide de plusieurs sessions de connexion.

public override void Init()
{
    // Set the license key for IronWebScraper
    License.LicenseKey = "LicenseKey";

    // Set the logging level to capture all logs
    this.LoggingLevel = WebScraper.LogLevel.All;

    // Assign the working directory for the output files
    this.WorkingDirectory = AppSetting.GetAppRoot() + @"\ShoppingSiteSample\Output\";

    // Define an array of proxies
    var proxies = "IP-Proxy1:8080,IP-Proxy2:8081".Split(',');

    // Iterate over common Chrome desktop user agents
    foreach (var UA in IronWebScraper.CommonUserAgents.ChromeDesktopUserAgents)
    {
        // Iterate over the proxies
        foreach (var proxy in proxies)
        {
            // Add a new HTTP identity with specific user agent and proxy
            Identities.Add(new HttpIdentity()
            {
                UserAgent = UA,
                UseCookies = true,
                Proxy = proxy
            });
        }
    }
    
    // Make an initial request to the website with a parse method
    this.Request("http://www.Website.com", Parse);
}

Vous avez plusieurs propriétés pour vous offrir différents comportements, empêchant les sites web de vous bloquer.

Certaines de ces propriétés comprennent :

  • NetworkDomain: Le domaine réseau à utiliser pour l'authentification de l'utilisateur. Compatible avec les réseaux Windows, NTLM, Kerberos, Linux, BSD et Mac OS X. Doit être utilisé avec NetworkUsername et NetworkPassword.
  • NetworkUsername: Le nom d'utilisateur réseau/http à utiliser pour l'authentification de l'utilisateur. Prend en charge HTTP, les réseaux Windows, NTLM, Kerberos, les réseaux Linux, les réseaux BSD et Mac OS.
  • NetworkPassword: Le mot de passe réseau/http à utiliser pour l'authentification de l'utilisateur. Prend en charge HTTP, les réseaux Windows, NTLM, Kerberos, les réseaux Linux, les réseaux BSD et Mac OS.
  • Proxy: Pour configurer les paramètres de proxy.
  • UserAgent: Pour configurer un moteur de navigateur (par exemple, Chrome desktop, Chrome mobile, Chrome tablet, IE, et Firefox, etc.).
  • HttpRequestHeaders: Pour des valeurs d'en-tête personnalisées qui seront utilisées avec cette identité, il accepte un objet dictionnaire Dictionary<string, string>.
  • UseCookies: Activer/désactiver l'utilisation des cookies.

IronWebScraper exécute le scraper en utilisant des identités aléatoires. Si nous devons spécifier l'utilisation d'une identité particulière pour analyser une page, nous pouvons le faire :

public override void Init()
{
    // Set the license key for IronWebScraper
    License.LicenseKey = "LicenseKey";

    // Set the logging level to capture all logs
    this.LoggingLevel = WebScraper.LogLevel.All;

    // Assign the working directory for the output files
    this.WorkingDirectory = AppSetting.GetAppRoot() + @"\ShoppingSiteSample\Output\";

    // Create a new instance of HttpIdentity
    HttpIdentity identity = new HttpIdentity();
    
    // Set the network username and password for authentication
    identity.NetworkUsername = "username";
    identity.NetworkPassword = "pwd";
    
    // Add the identity to the collection of identities
    Identities.Add(identity);
    
    // Make a request to the website with the specified identity
    this.Request("http://www.Website.com", Parse, identity);
}

Activer la fonction de cache Web

Cette fonctionnalité permet de mettre en cache les pages demandées. Il est souvent utilisé lors des phases de développement et de test, permettant aux développeurs de mettre en cache les pages nécessaires pour les réutiliser après la mise à jour du code. Cela vous permet d'exécuter votre code sur des pages mises en cache après avoir redémarré votre robot d'extraction Web sans avoir besoin de vous connecter au site Web en direct à chaque fois (relecture d'action).

Vous pouvez l'utiliser dans la méthode Init() :

// Enable web cache without an expiration time
EnableWebCache();

// OR enable web cache with a specified expiration time
EnableWebCache(new TimeSpan(1, 30, 30));

Il enregistrera vos données mises en cache dans le dossier WebCache sous le répertoire de travail.

public override void Init()
{
    // Set the license key for IronWebScraper
    License.LicenseKey = "LicenseKey";

    // Set the logging level to capture all logs
    this.LoggingLevel = WebScraper.LogLevel.All;

    // Assign the working directory for the output files
    this.WorkingDirectory = AppSetting.GetAppRoot() + @"\ShoppingSiteSample\Output\";

    // Enable web cache with a specific expiration time of 1 hour, 30 minutes, and 30 seconds
    EnableWebCache(new TimeSpan(1, 30, 30));
    
    // Make an initial request to the website with a parse method
    this.Request("http://www.Website.com", Parse);
}

IronWebScraper a également des fonctionnalités pour permettre à votre moteur de continuer à scrapper après le redémarrage du code en définissant le nom du processus de démarrage du moteur en utilisant Start(CrawlID).

static void Main(string[] args)
{
    // Create an object from the Scraper class
    EngineScraper scrape = new EngineScraper();
    
    // Start the scraping process with the specified crawl ID
    scrape.Start("enginestate");
}

La requête d'exécution et la réponse seront enregistrées dans le dossier SavedState à l'intérieur du répertoire de travail.

Étranglement

Nous pouvons contrôler le nombre minimal et maximal de connexions ainsi que la vitesse de connexion par domaine.

public override void Init()
{
    // Set the license key for IronWebScraper
    License.LicenseKey = "LicenseKey";

    // Set the logging level to capture all logs
    this.LoggingLevel = WebScraper.LogLevel.All;

    // Assign the working directory for the output files
    this.WorkingDirectory = AppSetting.GetAppRoot() + @"\ShoppingSiteSample\Output\";

    // Set the total number of allowed open HTTP requests (threads)
    this.MaxHttpConnectionLimit = 80;
    
    // Set minimum polite delay (pause) between requests to a given domain or IP address
    this.RateLimitPerHost = TimeSpan.FromMilliseconds(50);
    
    // Set the allowed number of concurrent HTTP requests (threads) per hostname or IP address
    this.OpenConnectionLimitPerHost = 25;
    
    // Do not obey the robots.txt files
    this.ObeyRobotsDotTxt = false;
    
    // Makes the WebScraper intelligently throttle requests not only by hostname, but also by host servers' IP addresses
    this.ThrottleMode = Throttle.ByDomainHostName;
    
    // Make an initial request to the website with a parse method
    this.Request("https://www.Website.com", Parse);
}

Propriétés d'étranglement

  • MaxHttpConnectionLimit Nombre total de requêtes HTTP ouvertes autorisées (threads)
  • RateLimitPerHost Délai ou pause minimale polie (en millisecondes) entre les requêtes adressées à un domaine ou une adresse IP donnée
  • OpenConnectionLimitPerHost Nombre de requêtes HTTP simultanées autorisées (threads) par nom d'hôte
  • ThrottleMode Permet au WebScraper de limiter intelligemment les requêtes non seulement par nom d'hôte, mais aussi par adresse IP des serveurs hôtes. Cette pratique est courtoise dans le cas où plusieurs domaines extraits seraient hébergés sur la même machine.

Commencez avec IronWebScraper

Start using IronWebScraper in your project today with a free trial.

Première étape :
arrow pointer

Questions Fréquemment Posées

Comment puis-je authentifier les utilisateurs sur les sites nécessitant une connexion en C# ?

Vous pouvez utiliser la fonctionnalité HttpIdentity dans IronWebScraper pour authentifier les utilisateurs en configurant des propriétés telles que NetworkDomain, NetworkUsername, et NetworkPassword.

Quel est l'avantage d'utiliser le cache web pendant le développement ?

La fonction de cache web vous permet de mettre en cache les pages demandées pour une réutilisation, ce qui aide à économiser du temps et des ressources en évitant les connexions répétées aux sites en ligne, particulièrement utile pendant les phases de développement et de test.

Comment puis-je gérer plusieurs sessions de connexion dans le scraping web ?

IronWebScraper permet l'utilisation de milliers d'identifiants d'utilisateur uniques et de moteurs de navigateur pour simuler plusieurs sessions de connexion, ce qui aide à prévenir la détection et le blocage du scraper par les sites web.

Quelles sont les options de throttling avancées dans le scraping web ?

IronWebScraper propose un paramètre ThrottleMode qui gère intelligemment le throttling des requêtes en fonction des noms d'hôtes et des adresses IP, garantissant une interaction respectueuse avec les environnements d'hébergement partagé.

Comment puis-je utiliser un proxy avec IronWebScraper ?

Pour utiliser un proxy, définissez un tableau de proxies et associez-les aux instances HttpIdentity dans IronWebScraper, permettant aux requêtes d'être acheminées par différentes adresses IP pour l'anonymat et le contrôle d'accès.

Comment IronWebScraper gère-t-il les délais de requête pour éviter la surcharge du serveur ?

Le paramètre RateLimitPerHost dans IronWebScraper spécifie le délai minimum entre les requêtes vers un domaine ou une adresse IP spécifique, contribuant à prévenir la surcharge du serveur en espaçant les requêtes.

Le scraping web peut-il être repris après une interruption ?

Oui, IronWebScraper peut reprendre le scraping après une interruption en utilisant la méthode Start(CrawlID), qui enregistre l'état d'exécution et reprend à partir du dernier point enregistré.

Comment puis-je contrôler le nombre de connexions HTTP simultanées dans un scraper web ?

Dans IronWebScraper, vous pouvez définir la propriété MaxHttpConnectionLimit pour contrôler le nombre total de requêtes HTTP ouvertes autorisées, aidant à gérer la charge du serveur et les ressources.

Quelles sont les options disponibles pour journaliser les activités de scraping web ?

IronWebScraper vous permet de définir le niveau de journalisation en utilisant la propriété LoggingLevel, permettant une journalisation exhaustive pour une analyse détaillée et un dépannage lors des opérations de scraping.

Can IronWebScraper work without connecting to a live website constantly?

Yes, IronWebScraper can work by utilizing its web cache feature, which allows it to perform actions on cached pages without repeatedly connecting to the live website, thus facilitating faster testing and development cycles.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Prêt à commencer?

Nuget Downloads 143,929Version :2026.9vient de sortir

Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronWebScraper
nuget.org/packages/IronWebScraper/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez "IronWebScraper"
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

  1. Téléchargez et décompressez IronWebScraper à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans Visual Studio Solution Explorer, cliquez avec le bouton droit sur Références. Sélectionnez Parcourir, "IronWebScraper.dll"

Licences à partir de 749 $

Vous avez une question ? Contactez notre équipe de développement.

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise