C# 테크닉 - 크롤링
# 크롤링(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; // 크롤링 결과
}