IRONSOFTWAREHOME

Advanced Webscraping Features in C#

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

Recurso HttpIdentity

Alguns sistemas de websites exigem que o usuário faça login para visualizar o conteúdo; neste caso, podemos usar um HttpIdentity. Veja como você pode configurar:

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

Uma das funcionalidades mais impressionantes e poderosas do IronWebScraper é a capacidade de usar milhares de credenciais de usuário exclusivas e/ou mecanismos de navegador para falsificar ou extrair dados de sites usando várias sessões de login.

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

Você tem várias propriedades para lhe fornecer comportamentos diferentes, evitando que sites o bloqueiem.

Algumas dessas propriedades incluem:

  • NetworkDomain: O domínio da rede a ser usado para autenticação do usuário. Compatível com redes Windows, NTLM, Kerberos, Linux, BSD e Mac OS X. Deve ser usado com NetworkUsername e NetworkPassword.
  • NetworkUsername: O nome de usuário da rede/http a ser usado para autenticação do usuário. Compatível com HTTP, redes Windows, NTLM, Kerberos, redes Linux, redes BSD e Mac OS.
  • NetworkPassword: A senha da rede/http a ser usada para autenticação do usuário. Compatível com HTTP, redes Windows, NTLM, Kerberos, redes Linux, redes BSD e Mac OS.
  • Proxy: Para definir configurações de proxy.
  • UserAgent: Para definir um motor de navegador (por exemplo, Chrome desktop, Chrome mobile, Chrome tablet, IE, e Firefox, etc.).
  • HttpRequestHeaders: Para valores de cabeçalho personalizados que serão usados com essa identidade, aceita um objeto de dicionário Dictionary<string, string>.
  • UseCookies: Habilitar/desabilitar o uso de cookies.

O IronWebScraper executa o scraper usando identidades aleatórias. Se precisarmos especificar o uso de uma identidade específica para analisar uma página, podemos fazê-lo:

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

Ative o recurso de cache da Web

Essa funcionalidade é usada para armazenar em cache as páginas solicitadas. É frequentemente utilizado nas fases de desenvolvimento e teste, permitindo que os desenvolvedores armazenem em cache as páginas necessárias para reutilização após a atualização do código. Isso permite que você execute seu código em páginas em cache após reiniciar seu web scraper, sem precisar se conectar ao site ativo todas as vezes (ação-replay).

Você pode usá-lo no 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));

Isso irá salvar seus dados em cache na pasta WebCache sob a pasta do diretório de trabalho.

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 também possui recursos para permitir que seu motor continue raspando após reiniciar o código ao definir o nome do processo de início do 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");
}

A solicitação de execução e resposta será salva na pasta SavedState dentro do diretório de trabalho.

Limitação de velocidade

Podemos controlar o número mínimo e máximo de conexões e a velocidade de conexão por domínio.

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

Propriedades de estrangulamento

  • MaxHttpConnectionLimit Número total de requisições HTTP abertas permitidas (threads)
  • RateLimitPerHost Tempo mínimo de espera ou pausa (em milissegundos) entre solicitações para um determinado domínio ou endereço IP.
  • OpenConnectionLimitPerHost Número permitido de requisições HTTP simultâneas (threads) por nome de host.
  • ThrottleMode Faz com que o WebScraper limite as solicitações de forma inteligente, não apenas pelo nome do host, mas também pelos endereços IP dos servidores de hospedagem. Isso é uma medida de cortesia caso vários domínios coletados estejam hospedados na mesma máquina.

Comece com IronWebScraper

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

Primeiro passo:
arrow pointer

Perguntas frequentes

Como posso autenticar usuários em sites que exigem login usando C#?

Você pode utilizar o recurso HttpIdentity no IronWebScraper para autenticar usuários configurando propriedades como NetworkDomain , NetworkUsername e NetworkPassword .

Qual a vantagem de usar cache web durante o desenvolvimento?

O recurso de cache da web permite armazenar em cache as páginas solicitadas para reutilização, o que ajuda a economizar tempo e recursos, evitando conexões repetidas a sites ativos, sendo especialmente útil durante as fases de desenvolvimento e teste.

Como posso gerenciar várias sessões de login em web scraping?

O IronWebScraper permite o uso de milhares de credenciais de usuário exclusivas e mecanismos de navegador para simular várias sessões de login, o que ajuda a impedir que os sites detectem e bloqueiem o programa.

Quais são as opções avançadas de limitação de taxa na extração de dados da web?

O IronWebScraper oferece uma configuração ThrottleMode que gerencia de forma inteligente a limitação de requisições com base em nomes de host e endereços IP, garantindo uma interação adequada com ambientes de hospedagem compartilhada.

Como posso usar um proxy com o IronWebScraper?

Para usar um proxy, defina uma matriz de proxies e associe-os a instâncias HttpIdentity no IronWebScraper, permitindo que as solicitações sejam roteadas por meio de diferentes endereços IP para anonimato e controle de acesso.

Como o IronWebScraper lida com atrasos nas requisições para evitar sobrecarga do servidor?

A configuração RateLimitPerHost no IronWebScraper especifica o atraso mínimo entre as solicitações para um domínio ou endereço IP específico, ajudando a evitar a sobrecarga do servidor ao espaçar as solicitações.

É possível retomar a extração de dados da web após uma interrupção?

Sim, o IronWebScraper pode retomar a coleta de dados após uma interrupção usando o método Start(CrawlID) , que salva o estado da execução e retoma do último ponto salvo.

Como faço para controlar o número de conexões HTTP simultâneas em um web scraper?

No IronWebScraper, você pode definir a propriedade MaxHttpConnectionLimit para controlar o número total de solicitações HTTP abertas permitidas, ajudando a gerenciar a carga e os recursos do servidor.

Quais opções estão disponíveis para registrar atividades de web scraping?

O IronWebScraper permite definir o nível de registro usando a propriedade LoggingLevel , possibilitando um registro abrangente para análise detalhada e solução de problemas durante as operações de extração de dados.

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
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 143,929Versão:2026.9recém-lançado

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.9

PM > Install-Package IronWebScraper
nuget.org/packages/IronWebScraper/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronWebScraper".
  3. Selecione o pacote e instale.
DLL de PDF em C#
Baixar DLL

Versão: 2026.9

  1. Baixe e descompacte o IronWebScraper em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronWebScraper.dll".

Licenças a partir de US$ 749

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.