자바 웹 크롤링(Web Scraping)
서론
웹 프로젝트를 하다보면 Iframe 혹은 Web에 있는 필요한 데이터를 긁어와서 우리 화면에 뿌려야 하는 상황이 생기는데, 웹 크롤링(Web Scraping)
을 사용하면 쉽게 필요한 데이터만 가져와서 사용할 수 있습니다.
Iframe 같은 경우는 URL 객체로 HTML을 문자열로 읽어오는데 시간이 오래 걸립니다. (10초 이상이 걸리는 경우도 있습니다.) 따라서 이런 경우는 스케줄러(Scheduler)
를 통해 각 프로젝트의 특성에 맞게(ex) 한 달에 한 번) JSON 파일로 만들고, 해당 JSON 파일을 비동기나, 동기로 읽어와서 뿌려야 합니다.
크롤링(Scraping) 이란 ?
웹 크롤링이란 컴퓨터 소프트웨어 기술로 웹 사이트들에서 원하는 정보를 추출하는 것을 의미합니다. 크롤링의 정식 명칭은 Scraping
입니다.
Web scraping is a computer software technique of extracting information from websites
Jsoup
Jsoup Library
는 자바에서 제공하는 HTML Parser
입니다.
Maven Dependency
Jackson Library
스프링부트 에서는 Json Format
을 사용하기 위해서 Jackson Library
를 사용합니다. 스프링에서는 Dependecy를 추가해야하고, 스프링 부트는 기본으로 제공합니다.
Logic
- Jsoup 라이브러리를 사용해서 HTML parsing
- 필요한 값들만 프로퍼티로 가지는 DTO 생성
- select와, attr 메서드를 이용해서 필요한 값 추출 후에 DTO에 저장
- DTO를 리스트에 저장
- call Method convertValue by ObjectMapper
- call Method writeValueAsString by ObejctMapper
- 스케줄러 생성
- 스케줄러의 메서드에서 JSON 생성파일 호출
- 필요한 곳에서 JSON 파일을 읽는 메서드를 호출