정보보안공부

JSP_7. Jsoup 본문

JSP

JSP_7. Jsoup

Steady_sp 2017. 9. 15. 22:29

<Jsoup>

jsoup.org에 들어가서 다운을 받고 압축파일 그대로 WEB-INF안에 lib안에 집어넣으면 jsoup을 사용할 수 있게된다. 단 코딩할때 jsoup 관련된 사항은 import처리 해줘야한다. 아래의 예제를 살펴보자

 

## JsoupEx01

 

 

Jsoup.connect를 통해 해당페이지를 get을 통해 Document doc로 해당 홈페이지 내용을 가져온다는 의미이다. doc.title()은 가져온 홈페이지 내용중에 title값만 뽑아내는 것이다. 뽑아낸 title은 String title에 저장하고 out.println(title)을 통해 jsp 서버가 실행되면 해당내용을 출력시킨다.

 

## JsoupEx02

 

 

네이버 홈페이지에서 소스보기를 통해 해당 홈페이지 소스를 확인하고 보고싶은 내용만 가져올수 있다. 네이버의 실시간 검색어를 jsoup을 활용해 확인해보자

 

먼저 해당홈페이지에서 소스보기후 Ctrl + F 를 이용해 실시간을 검색한뒤 코드를 확인해보면 ul class안에 실시간 검색어내용이 전부있고 li class를 통해 순위별로 작성되어있는것을 확인할 수 있다. select로 원하는 클래스(ul)전체를 가져오고 Elements에 저장해놓으면 홈페이지에 있는 원하는 클래스전체가 네이버에는 3파트로 되어있다. 원하는 파트는 3파트중 get(0)을 통해 첫번째 파트만 가져온다.

 

순위내용은 ul 클래스안에 각각의 순위내용이 클래스(li)로 구분되어있다. 해당클래스 개수는 20개이다. 네모한칸이 한개의 순위 내용이다.

 

for문을 이용하여 out.println으로 jsp서버가 실행되면 해당창에 문구를 띄워준다. 가져오려는 내용은 text()로 해당내용을 가져온다.

 

**select는 원하는 태그만 가져온다.

**get은 원하는 부분의 순서 0부터 ~까지

**text는 원하는부분 가져올때

 

아래예제를 통해 링크도 가능하다는것을 확인해보자

 

## JsoupEx03

 

 

링크를 표시하기위해서는 링크가있는 소스코드 부분을 확인해야한다. ul클래스에서 2번째 부분(1위~10위) 과 3번째 부분(11위~20위)이다. 따라서 get(1)과 get(2)를 통해 해당 부분을 불러와야한다. element1 element2를 사용해 해당부분을 불러들인뒤 select로 해당순위부분 중 순위숫자를 나타내는부분은 span클래스에 ah_r 코드에서는 span class="ah_r"로 되어있다. 순위내용은 span클래스에 ah_k이다.

 

링크를 나타낼때에는 jsp서버로 <a href="링크"></a>가 작성되야하기 때문에 select로 a의 링크를 attr("href")로 불러들인다. attr은 속성중 href속성을 get으로 arrayList배열에 저장한다. 해당 내용을 출력할때에는  <a href="링크">를 만들어놓고 해당순위 숫자와 해당순위내용을 작성한뒤 </a>를통해 닫아주면 링크가 이루어진다. for문이기떄문에 <br>을 통해 줄바꿈을 해주면 보기 더 편해진다.

 

## JsoupEx04

 

 

네이버와 마찬가지로 다음에서도 똑같은 방식으로 할 수 있다.

'JSP' 카테고리의 다른 글

JSP_day09_Gson을 이용해 온라인 설문조사 만들기  (0) 2017.09.19
JSP_8. Gson  (0) 2017.09.19
JSP_6. 달력만들기  (0) 2017.09.15
JSP_5. 선언부,표현식,request  (0) 2017.09.15
JSP_4. JSP파일 만들어보기  (0) 2017.09.13
Comments