본문 바로가기
CSharp 테크닉

C# 테크닉 - 크롤링

by ColdyJ 2023. 9. 19.
반응형

# 크롤링(Crawling) / 스크레이핑(Scraping) 은 웹에 노출된 데이터를 가져와서 특정한 규칙 또는 위치의 데이터를 추출한다. 
   # 전용 소프트웨어를 크롤러(crawler)라고 한다.

# 스파이더(spider), 봇(bot)과 같은 지능형 검색엔진들도 크롤링 기법을 많이 이용한다.
   # 미리 입력된 방식에 따라 끊임없이 새로운 웹 페이지를 찾고 찾은 결과를 이용해 새로운 정보에 색인을 추가

 

1. Selenium 설치한다.
   > Visual Studio 에서 메뉴 - 도구 - NuGet 패키지 관리자로 이동
   > Selenium.WebDriver, Selenium.Support 설치
   > Selenium.WebDriver.ChromeDriver, DotNetSeleniumExtras.WaitHelpers 설치

 

2. Chrome 웹브라우저 버전 확인
   > Selenium.WebDriver.ChromeDriver 와 현재 설치된 Chrome 버전 통일
   > Selenium.WebDriver.ChromeDriver 버전을 기입해도 됨.

 

 

3. C# 기본 프로젝트 생성
   > WinForm 으로 새 프로젝트를 생성한다.
   > Form1 에 using OpenQA.Selenium, using OpenQA.Selenium.Chrome, using OpenQA.Selenium.Support.UI 추가
   > 프로젝트 compile 확인

 

4. 크롤링 데이터 선택
   > Chrome 으로 데이터 수집을 위한 웹 페이지로 이동후 F12 클릭
   > 원하는 데이터의 XPath 를 추출 ( Ctrl + Shift + C 이후 마우스로 위치 설정 Copy XPath )

 

private void buttonPageScroll_Click(object sender, EventArgs e)
{
   ChromeDriverService _driverService = ChromeDriverService.CreateDefaultService();
   _driverService.HideCommandPromptWindow = true;

   ChromeOptions _options = _options = new ChromeOptions();
   _options.AddArgument("disable-gpu");
   _options.AddArgument("headless");

   ChromeDriver _driver = new ChromeDriver(_driverService, _options);
   _driver.Navigate().GoToUrl(textBox_url.Text);

   IWebElement elem = driver.FindElementByXPath(textBox_XPath.Text);
   elem.Text; // 크롤링 결과
}

 
반응형

댓글