카테고리 없음

Jsoup 기초

뒷골목프로그래머 2019. 6. 30. 22:06
반응형

안녕하십니까. 오늘은 JSOUP 기초에 대해

예제를 통해 설명하고자 합니다.

 

먼저, 이클립스(eclipse)에서 JSOUP을

사용하기 위해서는

JSOUP 라이브러리를 등록해야하는데요.

 

아래 링크의 mvnrepository사이트에서

Jsoup을 검색해서 다운로드 하시면 됩니다.

https://mvnrepository.com/artifact/org.jsoup/jsoup

 

Maven Repository: org.jsoup » jsoup

jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods. jsoup implements the WHATWG HTML5 specification, and parses HTML to the s

mvnrepository.com

아무거나 사용해도 무방하겠지만,

저는 사람들이 많이 다운받은 1.11.3버전을 사용했습니다.

이제, JSOUP 예제 실행을 위해

Dynamic Web Project를 만들고

libraray에 다운받은 jar파일을 등록해줍니다.

오늘 예제는 로또 사이트를 예시로하여

class이름은 Lottery로 해보겠습니다.

JSOUP Libraray

 

lotto 홈페이지의 붉은색 박스부분을

JSOUP 라이브러리를 활용해 추출하고자 합니다.

이를 위해서는 사이트 URL과

소스코드를 알아야하는데

확인하는 방법은 웹페이지 아무곳이나

마우스 오른쪽 버튼 클릭 후 '검사'를 누르면

아래 이미지와 같이 화면 오른쪽에 소스코드가 나타납니다.

소스코드 상에서 본인이 추출하고자하는 부분의

코드를 확인합니다.

웹페이지 소스코드 확인

그림을 보면 865회 당첨번호는

<div class = "section_title"> 내분의

<strong>태그에 id는 lottoDrwNo임을 알 수 있고

 

아래 당첨번호 7가지는

<div class="prizeresult"> 영역의

<span>태그임을 알 수 있습니다.

 

이제 이를 활용해서 이클립스(eclipse) 상에서

해당 부분을 추출해보도록 하겠습니다.

 

 

이클립스 이미지

위 그림을 보시면

JSOUP libraray의 Document와 Elements를

활용했음을 알 수 있습니다.

여기서 Elements는 값이 여러개 일때 사용하며

값이 하나일 때는 Element를 사용합니다.(복수, 단수)

 

다음 추출하고자 하는 부분을 select()를 활용하여,

위치를 입력합니다.

 

예를들어 title부분은

div영역의 class이름이 section_title이며,

strong tag의 id가 lottoDrwNo가 인 곳을

select()합니다.

 

마찬가지로 번호 부분도 마찬가지로 추출합니다.

그 다음 for문을 활용하는데

이는, div태그 안에도 여러개의 값들이 있기때문에

순서대로 추출하기 위함입니다.

 

이제 결과를 추출해보면,

아래 그림과 같은 결과를 얻을 수 있습니다.

이상 예제를 활용한

JSOUP 활용 기초입니다. 

반응형