[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() 는 셀레니움 홈페이지(?) 참조.
'프로그래밍 > C#' 카테고리의 다른 글
[c#/Excel] 엑셀 리더 (0) | 2020.12.06 |
---|---|
[Unity3D/C#] Server returned an error: 500 STOR (0) | 2020.01.08 |
[C#] 배열과 List의 차이 (0) | 2016.02.03 |
[C/C#] C언어와 C#언어의 차이 / 기타 ++ (0) | 2015.12.21 |
[C#] 부모클래스의 생성자 호출 (0) | 2015.12.19 |