IRONSOFTWAREHOME

Advanced Webscraping Features in C#

Curtis Chau
Curtis Chau
Updated: 29 czerwca 2026

Funkcja HttpIdentity

Niektóre systemy stron internetowych wymagają, aby użytkownik był zalogowany, aby wyświetlić zawartość; w tym przypadku mozemy uzyc HttpIdentity. Oto jak to skonfigurować:

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

Jedną z najbardziej imponujących i potężnych funkcji w IronWebScraper jest możliwość użycia tysięcy unikalnych danych logowania użytkownika i/lub silników przeglądarek do symulowania lub zbierania danych z witryn korzystając z wielu sesji logowania.

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

Masz wiele właściwości dających różne zachowania, uniemożliwiając witrynom blokowanie cię.

Niektóre z tych właściwości to:

  • NetworkDomain: Domena sieciowa uzywana do uwierzytelniania uzytkownika. Obsługuje sieci Windows, NTLM, Kerberos, Linux, BSD i Mac OS X. Nalezy uzywac z NetworkUsername i NetworkPassword.
  • NetworkUsername: Sieciowa/nazwe uzytkownika http, ktora bedzie uzywana do uwierzytelniania uzytkownika. Obsługuje HTTP, sieci Windows, NTLM, Kerberos, sieci Linux, sieci BSD i Mac OS.
  • NetworkPassword: Sieciowe/haslo http, ktore bedzie uzywane do uwierzytelniania uzytkownika. Obsługuje HTTP, sieci Windows, NTLM, Kerberos, sieci Linux, sieci BSD i Mac OS.
  • Proxy: Ustawianie ustawien proxy.
  • UserAgent: Ustawianie silnika przegladarki (np. Chrome desktop, Chrome mobile, Chrome tablet, IE, i Firefox itd.).
  • HttpRequestHeaders: Dla niestandardowych wartosci naglowka, ktore beda uzywane z ta tozsamoscia, akceptuje obiekt slownikowy Dictionary<string, string>.
  • UseCookies: Wlaczenie/wylaczanie uzywania cookies.

IronWebScraper uruchamia scraper korzystając z losowych tożsamości. Jeśli musimy określić użycie konkretnej tożsamości do analizy strony, możemy to zrobić:

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

Włącz funkcję pamięci podręcznej

Ta funkcja służy do buforowania żądanych stron. Często używana w fazach rozwoju i testowania, umożliwiając programistom buforowanie wymaganych stron do ponownego użycia po zaktualizowaniu kodu. Umożliwia wykonanie kodu na stronie buforowanej po ponownym uruchomieniu webscrapera bez potrzeby łączenia się z aktywną stroną za każdym razem (action-replay).

Mozesz go uzyc w metodzie Init():

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

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

Beda zapisywac Twoje dane z cache do folderu WebCache w katalogu roboczym.

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 ma rowniez funkcje pozwalajace na kontynuowanie pobierania danych po ponownym uruchomieniu kodu, ustawiajac nazwe procesu uruchamiania silnika za pomoca 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");
}

Zadanie i odpowiedz do wykonania beda zapisywane w folderze SavedState wewnatrz katalogu roboczego.

Regulacja obciążenia

Możemy kontrolować minimalną i maksymalną liczbę połączeń oraz prędkość połączeń na domenę.

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

Właściwości regulacji obciążenia

  • MaxHttpConnectionLimit Całkowita liczba dozwolonych otwartych żądań HTTP (wątków)
  • RateLimitPerHost Minimalne uprzejme opóźnienie lub pauza (w milisekundach) pomiędzy żądaniami do danej domeny lub adresu IP
  • OpenConnectionLimitPerHost Dozwolona liczba równoczesnych żądań HTTP (wątków) na nazwę hosta
  • ThrottleMode WebScraper inteligentnie reguluje żądania nie tylko według nazwy hosta, ale także według adresów IP serwerów hosta. Jest to uprzejme w przypadku, gdy wiele skanowanych domen jest hostowanych na tej samej maszynie.

Rozpocznij korzystanie z IronWebScraper

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

Pierwszy krok:
arrow pointer

Często Zadawane Pytania

Jak mogę uwierzytelniać użytkowników na stronach wymagających loginu w C#?

Możesz wykorzystać funkcję HttpIdentity w IronWebScraper do uwierzytelniania użytkowników, ustawiając właściwości takie jak NetworkDomain, NetworkUsername i NetworkPassword.

Jaka jest korzyść z używania web cache podczas tworzenia?

Funkcja web cache pozwala na buforowanie żądanych stron do ponownego użycia, co pomaga zaoszczędzić czas i zasoby, unikając powtarzających się połączeń do żywych stron, szczególnie przydatne w fazach tworzenia i testowania.

Jak mogę zarządzać wieloma sesjami logowania w web scrapingu?

IronWebScraper pozwala na użycie tysięcy unikalnych danych uwierzytelniania użytkowników i silników przeglądarek do symulacji wielu sesji logowania, co pomaga zapobiec wykrywaniu i blokowaniu scraper przez strony internetowe.

Jakie są zaawansowane opcje limitacji w web scrapingu?

IronWebScraper oferuje opcję ThrottleMode, która inteligentnie zarządza limitacją żądań na podstawie nazw hostów i adresów IP, zapewniając respekt dla środowisk współdzielonego hostingu.

Jak mogę używać proxy z IronWebScraper?

Aby użyć proxy, zdefiniuj tablicę proxy i powiąż je z instancjami HttpIdentity w IronWebScraper, co pozwala przekierować żądania przez różne adresy IP dla anonimowości i kontroli dostępu.

Jak IronWebScraper radzi sobie z opóźnieniami żądań, aby zapobiec przeciążeniu serwera?

Ustawienie RateLimitPerHost w IronWebScraper określa minimalne opóźnienie między żądaniami do konkretnej domeny lub adresu IP, pomagając zapobiec przeciążeniu serwera przez rozstawienie żądań.

Czy web scraping można wznowić po przerwaniu?

Tak, IronWebScraper może wznowić scraping po przerwaniu, korzystając z metody Start(CrawlID), która zapisuje stan wykonania i wznawia od ostatniego zapisanego punktu.

Jak mogę kontrolować liczbę równoczesnych połączeń HTTP w web scraper?

W IronWebScraper możesz ustawić właściwość MaxHttpConnectionLimit, aby kontrolować całkowitą liczbę dozwolonych otwartych żądań HTTP, pomagając zarządzać obciążeniem serwera i zasobami.

Jakie opcje są dostępne do logowania aktywności web scrapingu?

IronWebScraper pozwala ustawić poziom logowania przy użyciu właściwości LoggingLevel, umożliwiając kompleksowe logowanie do szczegółowej analizy oraz diagnostyki podczas operacji zscrapowania.

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
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 143,929Wersja:2026.9właśnie wydany

Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronWebScraper
nuget.org/packages/IronWebScraper/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz Przeglądaj i wyszukaj 'IronWebScraper'
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

  1. Pobierz i rozpakuj IronWebScraper w lokalizacji, takiej jak ~/Libs w katalogu rozwiązania
  2. W Eksploratorze rozwiązań Visual Studio, kliknij prawym przyciskiem Referencje. Wybierz Przeglądaj, 'IronWebScraper.dll'

Licencje od $999

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta