오늘이라도

[라이브러리] jsoup : 손쉬운 자바용 HTML Parser 본문

개발 공부/도구

[라이브러리] jsoup : 손쉬운 자바용 HTML Parser

upcake_ 2021. 4. 4. 20:16
반응형

jsoup.org/

 

jsoup Java HTML Parser, with the best of HTML5 DOM methods and CSS selectors.

jsoup: Java HTML Parser jsoup is a Java library for working with real-world HTML. It provides a very convenient API for fetching URLs and extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors. jsoup implements the WHATWG H

jsoup.org

1. 개요

jsoup는 HTML5 메서드와 CSS 선택자를 사용하여 파싱을 도와주는 자바용 라이브러리입니다.

 

특정 웹페이지에서 가져오고 싶은 요소가 있을 때,

 

흔히 사용하는 '#', '.', '태그명' 등을 사용하여 해당 요소를 선택하여 객체로 받아올 수 있습니다.

 

실무에서도 제가 아래 사진과 같이 사용했었는데요.

▲ 나주 공공데이터 플랫폼(http://www.naju.go.kr)과 공공데이터포털(https://www.data.go.kr)

공공데이터 포털에서 나주시가 제공하는 API들을 파싱 하여 목록으로 가져온 페이지입니다.

 

사용법이 공식 홈페이지에 자세히 나와있고 사용법이 어렵지 않은 라이브러리라 처음 실무에 적용했을 때도,

 

많이 헤매지 않고 바로 사용할 수가 있었습니다.

 

2. 설명

① Document doc = Jsoup.connect("https://en.wikipedia.org/").get();

log(doc.title()); //해당 웹페이지의 제목을 String으로 반환

② Elements newsHeadlines = doc.select("#mp-itn b a");

③ for (Element headline : newsHeadlines) {
  log("%s\n\t%s", 
    ④ headline.attr("title"), headline.absUrl("href"));
}

공식 홈페이지에서 제공하는 예시에 번호를 매기면서 설명해보도록 하겠습니다.

 

① 웹페이지 소스 가져오기

  - Jsoup 객체의 connect(), get() 메서드로 원하는 웹페이지의 소스를 가져옵니다.

  - 이때 소스는 Document 클래스로 반환됩니다.

 

② Document 객체에서 요소 선택

  - jsoup 라이브러리에서 가장 많이 사용하게 될 select() 메서드입니다.

  - 해당 메서드는 흔히 html, css에서 사용하는 '#', '.', '태그명' 등의 선택자를 통해 원하는 태그들을 자바 객체로 가져올 수 있습니다.

  - 이때 선택한 객체가 하나일 경우 Element 객체로 반환되며 여러 개일 경우 Elements 객체로 반환됩니다.

 

Elements는 Element가 모여있는 일종의 배열이기 때문에 이런 식으로 foreach 반복문을 사용할 수 있습니다.

 

④ 선택한 Element의 속성들도 선택이 가능합니다.

  - 선택할 수 있는 속성에는 id, class, href, src 등등이 있으며,

  - 예시에서는 title과 href 속성을 선택한 것을 확인할 수 있습니다.

반응형