https://codegarden-farmjun.tistory.com/73
이전 글과 내용이 이어지므로, 해당글의 내용을 이해를 돕기 위해 먼저 읽으면 도움이 될 것입니다.
Selenium을 사용하게 된 이유
크림에서 누적 거래 데이터를 스크래핑하기 위해서는 사이트 로그인이 필수였습니다.
Jsoup으로 로그인 후 데이터를 스크래핑하기 위한 코드를 짜보고 싶었지만, 생각보다 잘 구현이 되지 않아 막막했습니다.
그래서 일단 Jsoup을 다음으로 사이트가 로그인을 요구하는 경우, 스크래핑에 유리한 Selenium을 사용해 보기로 했습니다.
셀레늄은 사용자가 웹 사이트를 사용하는 것처럼 사이트를 제어하는 코드를 작성할 수 있다는 장점이 있습니다.
Selenium이란?
셀레늄(Selenium)은 웹 애플리케이션 자동화 및 테스트를 위한 포터블 프레임워크이다. 셀레늄은 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 플레이백 도구를 제공한다. (셀례늄 IDE) C 샤프, 그루비, 자바, 펄, PHP, 파이썬, 루비, 스칼라 등 수많은 유명 프로그래밍 언어들에서 테스트를 작성하기 위한 테스트 도메인 특화 언어(Selenese)를 제공한다. 이 테스트들은 현대의 대부분의 웹 브라우저에서 수행이 가능하다. 셀레늄은 윈도우, 리눅스, macOS 플랫폼에서 디플로이된다. 아파치 2.0 라이선스로 배포되는 오픈 소스 소프트웨어이다. 웹 개발자는 무료로 다운로드, 사용할 수 있다. (출처- 위키백과)
사실 Selenium은 크롤링을 위해 탄생안 프레임워크가 아니라고 해요. 웹 사이트를 개발할 때 사이트가 제대로 작동하는지 확인하기 위해 하나하나 수동으로 동작을 테스트해봐야 하는데 개발자들의 특징이 뭡니까! 귀찮음이 많다는거ㅋㅋ
그래서 이를 자동화하여 테스트할 수 있도록 만든 것이 Selenium이라고합니다.
Web Driver
Selenium을 사용하기 위해서는 웹 드라이브가 필요합니다. 저는 크롬 브라우저를 사용하기 때문에 크롬 드라이버를 설치했습니다.
브라우저 오른쪽 상단의 점 세개 클릭
-> 도움말 클릭
-> Chrome 정보 클릭
그러면 이런 화면을 볼 수 있다. 저 같은 경우는 109 버전입니다.
https://chromedriver.chromium.org/downloads
버전을 확인하셨다면 위 사이트에 접속해서 자신의 크롬 버전을 확인해서 맞는 웹 드라이버를 설치하자.
스프링 프로젝트 생성(인텔리제이)
타입은 Gradel-Groovy, JDK는 17, Packagin은 Jar로 했습니다.
Defendency는 추가 없이 생성했습니다.
여기에 아까 다운 받은 크롬 웹 드라이버를 압축 해제 후 드래그해서 넣어줍시다!
https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java
그 다음 위의 주소에 들어가셔서 가장 최근 버전인 4.7.2를 클릭
Gradle을 클릭하셔서 텍스트를 복사해줍니다.
다시 프로젝트로 돌아와서
build.gradle에 dependencies에 복사한 텍스트를 넣어주세요!
여기까지하면 Selenium을 사용할 준비는 끝입니다!