IronWebScraper 튜토리얼 고급 웹 스크래핑 기능 Advanced Webscraping Features in C# 커티스 차우 업데이트됨:1월 31, 2026 다운로드 IronWebScraper NuGet 다운로드 DLL 다운로드 무료 체험 시작하기 LLM용 사본 LLM용 사본 LLM용 마크다운 형식으로 페이지를 복사하세요 ChatGPT에서 열기 ChatGPT에 이 페이지에 대해 문의하세요 제미니에서 열기 제미니에게 이 페이지에 대해 문의하세요 Grok에서 열기 Grok에게 이 페이지에 대해 문의하세요 혼란 속에서 열기 Perplexity에게 이 페이지에 대해 문의하세요 공유하다 페이스북에 공유하기 트위터에 공유하기 LinkedIn에 공유하기 URL 복사 이메일로 기사 보내기 This article was translated from English: Does it need improvement? Translated View the article in English HttpIdentity 기능 일부 웹사이트 시스템은 콘텐츠를 보려면 사용자가 로그인해야 합니다. 이 경우, 우리는 HttpIdentity을(를) 사용할 수 있습니다. 설정 방법은 다음과 같습니다. // 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); // 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); $vbLabelText $csharpLabel IronWebScraper의 가장 인상적이고 강력한 기능 중 하나는 수천 개의 고유한 사용자 자격 증명 및/또는 브라우저 엔진을 사용하여 여러 로그인 세션을 통해 웹사이트를 위장하거나 스크래핑할 수 있는 기능입니다. 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); } 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); } $vbLabelText $csharpLabel 다양한 속성을 활용하여 각기 다른 동작을 구현할 수 있으므로 웹사이트에서 사용자를 차단하지 못하도록 할 수 있습니다. 이러한 속성 중 일부는 다음과 같습니다. NetworkDomain: 사용자 인증에 사용될 네트워크 도메인입니다. Windows, NTLM, Kerberos, Linux, BSD 및 Mac OS X 네트워크를 지원합니다. NetworkUsername 및 NetworkPassword과 함께 사용해야 합니다. NetworkUsername: 사용자 인증에 사용될 네트워크/http 사용자 이름입니다. HTTP, Windows 네트워크, NTLM, Kerberos, Linux 네트워크, BSD 네트워크 및 Mac OS를 지원합니다. NetworkPassword: 사용자 인증에 사용될 네트워크/http 비밀번호입니다. HTTP, Windows 네트워크, NTLM, Kerberos, Linux 네트워크, BSD 네트워크 및 Mac OS를 지원합니다. Proxy: 프록시 설정을 설정합니다. UserAgent: 브라우저 엔진을 설정합니다 (예: Chrome 데스크톱, Chrome 모바일, Chrome 태블릿, IE, 및 Firefox 등). HttpRequestHeaders: 이 아이덴티티와 함께 사용할 사용자 정의 헤더 값을 위해, Dictionary<string, string> 객체를 허용합니다. UseCookies: 쿠키 사용을 활성화/비활성화합니다. IronWebScraper는 임의의 ID를 사용하여 스크래퍼를 실행합니다. 페이지를 파싱할 때 특정 식별자를 사용하도록 지정해야 하는 경우, 다음과 같이 할 수 있습니다. 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); } 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); } $vbLabelText $csharpLabel 웹 캐시 기능을 활성화하세요 이 기능은 요청된 페이지를 캐시하는 데 사용됩니다. 이는 개발 및 테스트 단계에서 자주 사용되며, 개발자가 코드 업데이트 후 재사용할 수 있도록 필요한 페이지를 캐시할 수 있게 해줍니다. 이를 통해 웹 스크래퍼를 다시 시작한 후에도 매번 실제 웹사이트에 연결할 필요 없이 캐시된 페이지에서 코드를 실행할 수 있습니다(액션 리플레이). 이를 Init() 메소드에서 사용할 수 있습니다: // Enable web cache without an expiration time EnableWebCache(); // OR enable web cache with a specified expiration time EnableWebCache(new TimeSpan(1, 30, 30)); // Enable web cache without an expiration time EnableWebCache(); // OR enable web cache with a specified expiration time EnableWebCache(new TimeSpan(1, 30, 30)); $vbLabelText $csharpLabel 작업 디렉토리 폴더 아래의 WebCache 폴더에 캐시된 데이터를 저장합니다. 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); } 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); } $vbLabelText $csharpLabel IronWebScraper에는 엔진 시작 프로세스 이름을 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"); } 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"); } $vbLabelText $csharpLabel 실행 요청과 응답이 작업 디렉토리 내의 SavedState 폴더에 저장됩니다. 스로틀링 도메인별 최소 및 최대 연결 수와 연결 속도를 제어할 수 있습니다. 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); } 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); } $vbLabelText $csharpLabel 스로틀링 속성 MaxHttpConnectionLimit 허용된 총 HTTP 요청 수(스레드) RateLimitPerHost 특정 도메인 또는 IP 주소에 대한 요청 간 최소한의 지연 시간(밀리초) OpenConnectionLimitPerHost 호스트 이름당 허용되는 동시 HTTP 요청(스레드) 수 ThrottleMode 웹 스크래퍼가 호스트 이름뿐만 아니라 호스트 서버의 IP 주소로도 요청 속도를 지능적으로 조절할 수 있도록 합니다. 이는 스크랩한 도메인이 여러 개 같은 컴퓨터에 호스팅되는 경우를 대비한 예의 있는 표현입니다. IronWebscraper 시작하기 !{--010011000100100101000010010100100100000101010010010110010101111101010011010101000100000101010010101000101111101010001010010010010010100000101001100010111110100001001001001100010011110100001101001011--} 자주 묻는 질문 C#에서 로그인이 필요한 웹사이트에서 사용자를 어떻게 인증할 수 있나요? HttpIdentity 기능을 사용하여 IronWebScraper에서 NetworkDomain, NetworkUsername, NetworkPassword 같은 속성을 설정하여 사용자를 인증할 수 있습니다. 개발 중 웹 캐시를 사용하는 이점은 무엇인가요? 웹 캐시 기능은 요청된 페이지를 캐시하여 재사용할 수 있으며, 개발 및 테스트 단계에서 특히 유용하게 사용할 수 있습니다. 이는 살아있는 웹사이트에 대한 반복적인 연결을 피하여 시간과 자원을 절약합니다. 웹 스크래핑에서 여러 로그인 세션을 어떻게 관리할 수 있나요? IronWebScraper는 독특한 사용자 자격 증명과 브라우저 엔진 수천 개를 사용 가능하게 하여 여러 로그인 세션을 시뮬레이트할 수 있습니다. 이는 웹사이트가 스크래퍼를 탐지하고 차단하는 것을 방지합니다. 웹 스크래핑에서 고급 속도 제한 옵션은 무엇인가요? IronWebScraper는 ThrottleMode 설정을 제공하여 호스트 이름과 IP 주소를 기반으로 요청 제한을 지능적으로 관리하며, 공유 호스팅 환경과의 존중있는 상호 작용을 보장합니다. IronWebScraper와 함께 프록시를 어떻게 사용할 수 있나요? 프록시를 사용하려면 프록시 배열을 정의하고 IronWebScraper에서 HttpIdentity 인스턴스와 연결하여 요청을 다른 IP 주소를 통해 라우팅하여 익명성과 액세스 제어를 가능하게 합니다. 서버 과부하를 방지하기 위해 IronWebScraper는 요청 지연을 어떻게 처리하나요? IronWebScraper의 RateLimitPerHost 설정은 특정 도메인 또는 IP 주소에 대한 요청 간 최소 지연 시간을 지정하여 요청을 간격을 두어 서버 과부하를 방지합니다. 중단 후 웹 스크래핑을 재개할 수 있나요? 네, IronWebScraper는 Start(CrawlID) 메서드를 사용하여 중단 후 스크래핑을 재개할 수 있으며, 이는 실행 상태를 저장하고 마지막 저장 지점부터 시작합니다. 웹 스크래퍼에서 동시 HTTP 연결 수를 어떻게 제어할 수 있나요? IronWebScraper에서 MaxHttpConnectionLimit 속성을 설정하여 허용된 열린 HTTP 요청 총수를 제어할 수 있으며, 이는 서버 부하와 자원 관리를 돕습니다. 웹 스크래핑 활동을 기록하는 데 어떤 옵션이 있나요? IronWebScraper는 LoggingLevel 속성을 사용하여 기록 수준을 설정할 수 있으며, 이는 스크래핑 작업 중 세부 분석 및 문제 해결을 위한 포괄적인 로깅을 가능하게 합니다. 커티스 차우 지금 바로 엔지니어링 팀과 채팅하세요 기술 문서 작성자 커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다. 커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다. 시작할 준비 되셨나요? Nuget 다운로드 131,175 | 버전: 2026.3 방금 출시되었습니다 무료 체험 시작하기 NuGet 무료 다운로드 총 다운로드 수: 131,175 라이선스 보기 아직도 스크롤하고 계신가요? 빠른 증거를 원하시나요? PM > Install-Package IronWebScraper 샘플 실행 대상 사이트가 구조화된 데이터로 변환됩니다. NuGet 무료 다운로드 총 다운로드 수: 131,175 라이선스 보기