IRONSOFTWAREHOME

Advanced Webscraping Features in C#

Curtis Chau
Curtis Chau
Updated: 29 de junio de 2026

Función HttpIdentity

Algunos sistemas de sitios web requieren que el usuario inicie sesión para ver el contenido; en este caso, podemos usar un HttpIdentity. Aquí se explica cómo configurarlo:

// 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);

Una de las características más impresionantes y poderosas en IronWebScraper es la capacidad de utilizar miles de credenciales de usuario únicas y/o motores de navegador para simular o extraer sitios web usando múltiples sesiones de inicio de sesión.

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);
}

Tienes múltiples propiedades que te dan diferentes comportamientos, evitando que los sitios web te bloqueen.

Algunas de estas propiedades incluyen:

  • NetworkDomain: El dominio de red que se usará para la autenticación de usuarios. Compatible con Windows, NTLM, Kerberos, Linux, BSD y Mac OS X. Debe utilizarse con NetworkUsername y NetworkPassword.
  • NetworkUsername: El nombre de usuario de la red/http que se usará para la autenticación de usuarios. Compatible con HTTP, redes de Windows, NTLM, Kerberos, redes de Linux, redes de BSD y Mac OS.
  • NetworkPassword: La contraseña de red/http que se usará para la autenticación de usuarios. Compatible con HTTP, redes de Windows, NTLM, Kerberos, redes de Linux, redes de BSD y Mac OS.
  • Proxy: Para configurar los ajustes del proxy.
  • UserAgent: Para establecer un motor de navegador (por ejemplo, Chrome de escritorio, Chrome móvil, Chrome tablet, IE y Firefox, etc.).
  • HttpRequestHeaders: Para valores de cabecera personalizados que se utilizarán con esta identidad, acepta un objeto de diccionario Dictionary<string, string>.
  • UseCookies: Habilitar/deshabilitar el uso de cookies.

IronWebScraper ejecuta el scraper usando identidades aleatorias. Si necesitamos especificar el uso de una identidad específica para analizar una página, podemos hacerlo:

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);
}

Habilitar la función de caché web

Esta función almacena en caché las páginas solicitadas. Se utiliza a menudo en las fases de desarrollo y prueba, permitiendo a los desarrolladores almacenar en caché las páginas requeridas para reutilizarlas después de actualizar el código. Esto te permite ejecutar tu código en páginas almacenadas en caché después de reiniciar tu extractor web sin necesidad de conectarte al sitio web en vivo cada vez (repetición de acción).

Puedes usarlo en el método Init():

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

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

Guardará tus datos en caché en la carpeta WebCache dentro de la carpeta del directorio de trabajo.

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 también tiene funciones para permitir que tu motor continúe raspando después de reiniciar el código al establecer el nombre del proceso de inicio del motor usando 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 solicitud de ejecución y la respuesta se guardarán en la carpeta SavedState dentro del directorio de trabajo.

Estrangulamiento

Podemos controlar el número mínimo y máximo de conexiones y la velocidad de conexión por dominio.

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);
}

Propiedades de estrangulamiento

  • MaxHttpConnectionLimit Número total de solicitudes HTTP abiertas permitidas (hilos)
  • RateLimitPerHost Retraso o pausa educado mínimo (en milisegundos) entre solicitudes a un dominio o dirección IP dado
  • OpenConnectionLimitPerHost Número permitido de solicitudes HTTP concurrentes (hilos) por nombre de host
  • ThrottleMode Hace que el WebScraper limite inteligentemente las solicitudes no solo por nombre de host, sino también por direcciones IP de los servidores de host. Esto es educado en caso de que múltiples dominios extraídos estén alojados en la misma máquina.

Comience con IronWebScraper

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

Primer Paso:
arrow pointer

Preguntas Frecuentes

¿Cómo puedo autenticar usuarios en sitios web que requieren inicio de sesión en C#?

Puede utilizar la función HttpIdentity en IronWebScraper para autenticar usuarios configurando propiedades como NetworkDomain, NetworkUsername y NetworkPassword.

¿Cuál es el beneficio de usar caché web durante el desarrollo?

La función de caché web le permite almacenar en caché las páginas solicitadas para reutilizarlas, lo que ayuda a ahorrar tiempo y recursos al evitar conexiones repetidas a sitios web en vivo, especialmente útil durante las fases de desarrollo y prueba.

¿Cómo puedo gestionar múltiples sesiones de inicio de sesión en web scraping?

IronWebScraper permite el uso de miles de credenciales de usuario únicas y motores de navegador para simular múltiples sesiones de inicio de sesión, lo que ayuda a evitar que los sitios web detecten y bloqueen el scraper.

¿Cuáles son las opciones avanzadas de limitación en web scraping?

IronWebScraper ofrece una configuración ThrottleMode que gestiona inteligentemente la limitación de solicitudes según los nombres de host y las direcciones IP, asegurando una interacción respetuosa con los entornos de alojamiento compartido.

¿Cómo puedo usar un proxy con IronWebScraper?

Para usar un proxy, defina un array de proxies y asócielos con instancias de HttpIdentity en IronWebScraper, permitiendo que las solicitudes se dirijan a través de diferentes direcciones IP para el anonimato y el control de acceso.

¿Cómo maneja IronWebScraper los retrasos en las solicitudes para evitar la sobrecarga del servidor?

La configuración RateLimitPerHost en IronWebScraper especifica el retraso mínimo entre solicitudes a un dominio o dirección IP específicos, ayudando a prevenir la sobrecarga del servidor al espaciar las solicitudes.

¿Se puede reanudar el web scraping después de una interrupción?

Sí, IronWebScraper puede reanudar el scraping después de una interrupción utilizando el método Start(CrawlID), que guarda el estado de ejecución y reanuda desde el último punto guardado.

¿Cómo controlo el número de conexiones HTTP concurrentes en un web scraper?

En IronWebScraper, puede configurar la propiedad MaxHttpConnectionLimit para controlar el número total de solicitudes HTTP abiertas permitidas, ayudando a gestionar la carga y los recursos del servidor.

¿Qué opciones están disponibles para registrar actividades de web scraping?

IronWebScraper le permite establecer el nivel de registro utilizando la propiedad LoggingLevel, lo que permite un registro exhaustivo para un análisis detallado y solución de problemas durante las operaciones 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
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.

...
Leer más

¿Listo para empezar?

Nuget Downloads 143,929Versión:2026.9recién lanzado

Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronWebScraper
nuget.org/packages/IronWebScraper/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Selecciona Examinar y busca "IronWebScraper"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

  1. Descarga y descomprime IronWebScraper en una ubicación como ~/Libs dentro de tu directorio de Solución
  2. En Visual Studio Solution Explorer, haz clic derecho en Referencias. Selecciona Examinar, "IronWebScraper.dll"

Licencias desde $999

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta