본문 바로가기

개발일지(일간)

SpringBoot를 이용한 crawling 프로젝트 - 1

 

Spring boot에서 웹크롤링을 하기 위해서는 일반적으로 jsoup라이브러리를 사용한다.

하지만 jsoup만 사용할 경우에는 동적인 페이지의 데이터 크롤링을 하지 못하기 때문에, selenium 라이브러리와 크롬 드라이버도 jsoup와 함께 사용해 이번 프로젝트를 진행했다.

build.gradle에 jsoup와 selenium 의존성을 추가해 주었다.

 

jsoup을 이용해 데이터를 크롤링 하기 위해서는 대상이 되는 웹 페이지의 css정보를 알아야 한다.

css에 대한 정보는 개발자 도구를 이용해 간단히 알 수 있다.

 

캡쳐한 화면의 img경로는 #wrap #contents .relCon .prodListWrap 하위의 ul > li > .prod_img다.(id는 # , class는 . 으로 구분한다.)

 

이를 크롤링 하기 위한 코드로 정리해보자면, 다음과 같다.

 

하지만 페이지 내부의 '더보기'등의 버튼으로 페이지의 데이터가 동적으로 더 추가되는 상황에서는 jsoup만 이용해서 모든 데이터를 한번에 크롤링 해 올 수 없다.

이때, selenium 라이브러리와 크롬 드라이버를 사용해 동적인 페이지의 데이터 처리를 할 수 있다.

 

selenium 라이브러리와 크롬 드라이버를 사용해 더보기 버튼을 클릭하는 코드는 다음과 같이 쓸 수 있다.

위의 코드를 작동시키면 크롬 드라이버가 동작하며 '더보기' 버튼을 클릭해 페이지를 추가적으로 로드하는 모습을 볼 수 있다.