맥스무비 예매순위 차트
맥스무비(http://www.maxmovie.com/)의 영화 차트에서 영화 제목, 예매율, 개봉일, 포스터 사진url을 가져왔습니다.
노가다하는 방법을 사용해서 가져왔습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | ArrayList<String> htmls = new ArrayList<String>(); boolean isConnection = false; String infoLine = ""; public void getAllHtml(String newUrls) { htmls.clear(); InputStream inputStream; URL url = null; try { url = new URL(newUrls); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); inputStream = new BufferedInputStream(urlConnection.getInputStream()); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "euc-kr"), 8); String line = null; while ((line = reader.readLine()) != null) { if (!line.trim().equals("")) { htmls.add(line.trim()); } } inputStream.close(); isConnection = true; } catch (Exception e) { isConnection = false; System.out.println(e); } } |
HTML 페이지의 모든 내용을 불러오는 메소드입니다.
매개변수를 통해 불러올 url을 넣어줄겁니다.
HTML페이지에서 불러오는 내용들은 htmls라는 변수를 만들어 이 안에 넣어놓을 겁니다.
잘 들어왔나 확인해봅니다.
|
|
htmls변수의 내용들을 출력하는 메소드를 만들었습니다.
실행문을 만들고 불러올 사이트의 url을 getAllHtml 메소드의 매개변수로 넣어줍니다.
출력해보죠.
잘 가져오고 있습니다!
이 많은 내용 중에 제가 원하는 내용만 골라내야합니다. 저는 영화 제목, 예매율, 포스터 url, 개봉일자를 가져올겁니다.
|
<td class='poster'><a href='http://www.maxmovie.com/movie_info/detail.asp?m_id=M000099902'><img src='http://image.maxmovie.com/movieinfo/image/poster/movie/z_Max2017FateofFurious.jpg' alt='분노의 질주: 더 익스트림' /></a></td>
제목이 포함된 행입니다.
매개변수에 찾을 조건을 넣어 htmls로 부터 매개변수로 들어간 문자가 포함된 줄을 자릅니다.
class='poster'를 조건으로 넣으면 되겠네요. alt=' 뒤 부터 영화 제목이 시작되므로 그 뒤부터 홑따옴표가 닫히는 곳 까지 영화 제목을 잘라오도록 합니다.
같은 방식으로 예매율, 개봉일자, 포스터URL을 잘라오도록 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //예매율가져오기 public void getMovieBook(String msg) { // poiNum' for (int i = 0; i < htmls.size(); i++) { String ss = htmls.get(i); if (ss.contains(msg)) { infoLine = ss.trim(); infoLine = infoLine.substring(infoLine.indexOf(">") + 1).trim(); infoLine = infoLine.substring(0, infoLine.indexOf("<")).trim(); System.out.println(infoLine); } else { } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //개봉일가져오기 public void getMovieOpenDate(String msg) { //em>개봉일 for (int i = 0; i < htmls.size(); i++) { String ss = htmls.get(i); if (ss.contains(msg)) { infoLine = ss.trim(); infoLine = infoLine.substring(infoLine.lastIndexOf("em>") + 3).trim(); infoLine = infoLine.substring(0, infoLine.indexOf("<")).trim(); System.out.println(infoLine); } else { } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //포스터(작은그림) public void getMovieSPoster(String msg) { //tmpo for (int i = 0; i < htmls.size(); i++) { String ss = htmls.get(i); if (ss.contains(msg)) { infoLine = ss.trim(); infoLine = infoLine.substring(infoLine.indexOf("src=") + 5).trim(); infoLine = infoLine.substring(0, infoLine.indexOf("\"")).trim(); System.out.println(infoLine); } else { } } } | cs |
위 메소드들을 이용하여 다시 출력해봅시다!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public static void main(String[] args) { String a = "http://www.maxmovie.com/movie_info/res_chart.asp"; String str1 = "class='poster'"; String str2 = "poiNum"; String str3 = "em>개봉일"; String str4 = "tmpo"; Parse p = new Parse(); p.getAllHtml(a); //p.printHtml(); p.getMovieTitle(str1); //p.getMovieBook(str2); p.getMovieOpenDate(str3); //p.getMovieRank(str4); p.getMovieSPoster(str4); } } | cs |
출력결과 :
성공적으로 잘라왔습니다.
첫 포스트가 이런 수준이라 좀 부끄럽긴 하지만 아직 제 실력이 미치지 못해서요^^;
읽어주셔서 감사합니다.
'개발 > JSP' 카테고리의 다른 글
유효성검사(비밀번호, 자바스크립트) (0) | 2018.05.03 |
---|---|
JSP 웹소켓채팅-2 파이어폭스에서 input박스 엔터키 입력 문제 firefox windows.event (0) | 2017.05.11 |
JSP AJAX를 이용한 실시간 아이디 중복확인 (0) | 2017.05.11 |
JSP 웹소켓 채팅 / 웹 페이지 접속자들끼리 채팅, 귓속말 (2) | 2017.05.09 |