728x90
반응형
셀레니움(Selenium)
셀레니움(Selenium)
- 웹 응용 프로그램(웹 사이트)에서 자동화 프로그램을 만들 수 있다.
- 사람 대신에 프로그램이 사람처럼 웹 사이트에 방문해서 여러가지 행동(테스트)를 하는 프로그램
- 크롤링 작업이 가능하다.
[ Jsoup 사용방식 ]
- 인증이 불필요한 사이트만 사용 가능
- 인증이 필요한 사이트에서는 사용 불가능
- JavaScript 실행이 필요한 페이지에서는 사용이 불가능(Ajax가 대부분을 차지한다.)
[ 준비 작업 ]
- 크롬 웹 드라이버 설치: https://chromedriver.chromium.org/downloads (꼭 자신의 크롬 버전에 맡게 설치할 것)
- 셀레니움 Java 버전 설치: https://www.selenium.dev/downloads/
- jsoup 설치: https://jsoup.org/download
- 크롬 웹 드라이버와 셀레니움 Java버전은 기억하기 쉬운 폴더에 따로 webdriver로 저장한다.
- 셀레니움과 jsoup의 jar파일은 해당 프로젝트 lib 폴더에 저장시켜 Build Path 한다.
[ 예제 ]
- 특정 사이트 url은 기재 안하겠습니다.
- 상품명과 가격 가져오기
String webDriverID = "webdriver.chrome.driver";
// 크롬 웹 드라이버 불러오기
String path = "D:\\webdriver\\chromedriver.exe";
System.setProperty(webDriverID, path);
ChromeOptions options = new ChromeOptions();
options.setCapability("ignoreProtectedModeSettings", true);
WebDriver driver = new ChromeDriver(options);
String url = "사이트 주소";
driver.get(url);
// 크롤링할 키워드의 선택자 찾기
List<WebElement> list = driver.findElements(By.className("menu_box"));
// name, price 키워드의 선택자 찾기
for (WebElement item : list) {
String name = item.findElement(By.tagName("strong")).getText();
String price = item.findElement(By.className("price")).getText();
System.out.println(name + "," + price);
}
- 결과 ( 상품명, 가격 콘솔화면에 출력된 모습)
MEMO>
# 오늘 크롤링 수업 두번째로 셀리니움에 대해서 배웠는데 사용하기가 비록 어렵진 않지만 실행 후 동작이 버벅거리면서 느린걸 확인할 수 있었다.
# 셀리니움을 잘 이용하면 웹 페이지에 자동적으로 로그인하여 지정(예약)해둔 행동을 자동적으로 수행하게 할 수 있다는걸 깨달았다.
# 셀레니움을 이용해서 예제를 많이 했는데, 블로그에 정리글 올릴떄는 특정 웹사이트를 올릴 수가 없어 오늘은 짧게 마친다.
# 웹 프로젝트 ㄱㄱ
728x90
반응형
'교육 > Server' 카테고리의 다른 글
JDBC 개발자 수업 87일차 - 쿠키(cookie) - 팝업창 만들기, CSS 제어 (0) | 2021.07.31 |
---|---|
JDBC 개발자 수업 86일차 - 쿠키(cookie) - 로그인시 아이디 기억하기 (0) | 2021.07.28 |
JDBC 개발자 수업 84일차 - 크롤링(crawling) (0) | 2021.07.28 |
JDBC 개발자 수업 83일차 - 기본 게시판 만들기 - OpenAPI를 이용하여 지도 만들기 (0) | 2021.07.25 |
JDBC 개발자 수업 82일차 - 기본 게시판 만들기(2) - OpenAPI를 이용하여 책 검색하기 (0) | 2021.07.25 |
댓글