본문 바로가기

Dev/Spring Boot

Spring Boot - Java 동적 페이지 웹 크롤링 Selenium

728x90
  • Notion에서 Tistory로 자동업로드하는 프로젝트를 진행중에 정적 웹 크롤링과 동적 웹 크롤링이 다르다는 것을 알게 되었다. 그래서 동적 웹 크롤링을 따로 공부해야했다.

Selenium

  • 셀레니움은 웹 애플리케이션을 실행시켜볼 수 있는 프레임워크이다. 자동 로그인, 자동 글쓰기, 자동 클릭 등 많은 기능을 사용할 수 있다.
  • 의존성 Gradle

implementation 'org.seleniumhq.selenium:selenium-java:4.6.0'

다운받은 chromedriver를 위처럼 설정

TEST

  • 세팅
@GetMappint("TEST")
public void crawlingSelenium(String url) throws InterruptedException, IOException {
	System.setProperty("webdriver.chrome.driver", "chromedriver.exe");

	WebDriver driver = new ChromeDriver();

	driver.get("<https://www.naver.com/>");

	System.out.println(driver.getPageSource());

	driver.quit();
}

위 코드는 간단하게 네이버 사이트에서 HTML 코드를 가져오는 코드이다.

결과

 

정상적으로 네이버의 HTML 코드를 가져온 모습이다. 이후

driver.findElements(By.*className*("whenContentEditable")

같은 findElements 함수를 통해 적절하게 파싱하며 원하는 정보를 사용할 수 있다.