// java
public class MovieManager {
public List<MovieVO> getCGVDate()throws IOException{
List<MovieVO> list = new ArrayList<MovieVO>();
Document doc = Jsoup.connect("http://www.cgv.co.kr/movies/").get();
/*---------------------------------------------------------------
* 영화 제목 취득
---------------------------------------------------------------*
* <div class="box-contents">
<a href="/movies/detail-view/?midx=80489">
<strong class="title">블랙 팬서</strong>
</a>
---------------------------------------------------------------*/
Elements titleEle = doc.select("div.box-contents strong.title");
// 타이틀 가져옴
/*for (int i = 0; i < titleEle.size(); i++) {
Element titleE = titleEle.get(i);
System.out.println(titleE.text());
}*/
/*---------------------------------------------------------------
* 영화 좋아요 수 취득
* ---------------------------------------------------------------
* <div class="box-contents">
<span class="like">
<button class="btn-like" value="80489">영화 찜하기</button>
<span class="count">
<strong><i>23,790</i><span>명이 선택</span></strong>
<i class="corner-RT"></i><i class="corner-LT"></i><i class="corner-LB"></i><i class="corner-RB"></i><i class="corner-arrow"></i>
</span>
*
---------------------------------------------------------------*/
Elements likeEle = doc.select("div.box-contents span.like span.count strong i");
for (int i = 0; i < 7; i++) {
Element titleE = titleEle.get(i);
Element likeE = likeEle.get(i);
String title = titleE.text();
//String like = likeE.text();
int like = Integer.parseInt(likeE.text().replace(",", ""));
System.out.println("title : " + title);
System.out.println("like : " + like);
MovieVO mv = new MovieVO();
mv.setTitle(title);
mv.setLike(like);
list.add(mv);
}
return list;
}
}
// dto
public class MovieVO {
private String title;
private int like;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getLike() {
return like;
}
public void setLike(int like) {
this.like = like;
}
// jsp
<%@page import="sam.MovieVO"%>
<%@page import="java.util.List"%>
<%@page import="sam.MovieManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
MovieManager mm = new MovieManager();
List<MovieVO> list = mm.getCGVDate();
//하이차트 형식
//json 생성
String jsonLike = "[";
for (MovieVO m : list) {
jsonLike += "{ name:'" + m.getTitle() + "', y:" + m.getLike() + "}, ";
}
//맨 마지막 , 제거
jsonLike.substring(0, jsonLike.lastIndexOf(","));
jsonLike += "]";
System.out.println("jsonLike : " + jsonLike);
request.setAttribute("jsonLike", jsonLike);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/export-data.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
</head>
<body>
<div id="container" style="min-width: 310px; height: 400px; max-width: 600px; margin: 0 auto"></div>
<script type="text/javascript">
Highcharts.chart('container', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: '영화가 좋아요'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f} %',
style: {
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
}
}
}
},
series: [{
name: '선호도',
colorByPoint: true,
data: <%=request.getAttribute("jsonLike") %>
}]
});
</script>
</body>
</html>
카테고리 없음