[c# / 셀레니움] 웹크롤링
초간단 설명
1. NuGet패키지에서 셀레니움 추가.
2. 사용할 웹 브라우저 드라이버를 NuGet에서 추가.
- (필자는 크롬 사용함. 검색 결과가 많음 -> 구글링에 많은 데이터가 돌아다님.)
3. 크롤링 할 페이지에 가서 F12 - DevTools에서 cs를 확인 후 자기가 접근할 데이터의 태그를 확인.
4. 접근할 데이터의 태그를 가지고 데이터 접근 및 키 입력(버튼 클릭, 아이디 혹은 검색어 입력 등)
** Visual Studio 2019 버전 기준 설명입니다. **
1. 프로젝트를 실행한 후 NuGet 솔루션을 켭니다.
(도구 탭 - NuGet 패키지 관리자 - 솔루션용 NuGet 패키지 관리)
2. NuGet 솔루션 창에서 Excel을 검색하여 현재 패키지에 추가해줍니다.
* 셀레니움 - 웹 드라이버와, 브라우저 드라이버를 설치해준다.
3. 셀레니움을 사용하기 위하여 using 선언.
using OpenQA.Selenium;
using Open.Selenium.Chrome;
var driverService = ChromeDriverService.CreateDefaultService(); // 크롬 드라이버 서비스를 기본값으로 설정.
var options = new ChromeOptions(); // 크롬 옵션 설정
using (IWebDriver driver = new ChromeDriver(driverService, options)) // 생성자가 많음. 정의부분 가서 확인 후 필요한 방식대로 사용하면 됨.
{
driver.Url = "http://www.naver.com"; // 브라우저 실행. 접근 할 웹페이지의 url 입력.
var searchTextBox = driver.FindElement(By.XPath("접근 할 버튼 혹은 검색창의 XPath"));
}
* xpath 확인법.
해당 웹페이지로 접속 후 F12를 누른다.
우측에 생기는 DevTool에서 위쪽 Elements 탭 왼쪽으로 두칸에 있는 네모+화살표 모양을 클릭한다.(단축키 컨트롤+쉬프트+C)
버튼을 클릭한 후 Elements창에서 열리는 해당 속성 태그를 우클릭 후 Copy - Copy XPath를 클릭한다.
필요에 따라 XPath 외 다른 방식을 이용해도 된다.
By.XPath 외에도 By.ClassName이나 By.TagName 메소드도 있음.
.Click() 이나 .SendKeys나 .Clear() 는 셀레니움 홈페이지(?) 참조.