Jsoup이란 자바로 만들어진 HTML parser로, DOM 구조를 추적하거나 CSS 선택자를 사용하여 데이터를 찾아 추출할 수 있다.
우선 라이브러리 설치를 위해 https://jsoup.org/download 이동
제일 위 jsoup-1.14.3.jar 파일 다운로드
그리고 사용할 프로젝트에 라이브러리를 설치해주면 된다.
JSOUP을 이용해 영화 정보를 가져와 JSON 형태로 데이터를 생성해주었다.
import java.io.IOException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class crawling {
public static void main(String[] args) {
// Jsoup를 이용해서 크롤링
String url = "http://www.cgv.co.kr/movies/"; // 크롤링할 url지정
Document doc = null; // Document에 페이지의 전체 소스가 저장됨
try {
doc = Jsoup.connect(url).get();
} catch (IOException e) {
e.printStackTrace();
}
// select를 이용하여 원하는 태그를 선택
Elements ranks = doc.select(".rank");
Elements imgs = doc.select(".thumb-image > img");
Elements movieAges = doc.select(".ico-grade");
Elements movieTitles = doc.select("div.box-contents strong.title");
Elements movieRates = doc.select(".percent > span");
Elements movieOpenDates = doc.select(".txt-info > strong");
// JSON 형태로 영화 정보 저장
JSONArray movieList = new JSONArray();
for (int i = 0; i < ranks.size(); i++) {
// JSONObject에 키:값 형태로 데이터 저장
JSONObject obj = new JSONObject();
obj.put("rank", ranks.get(i).text());
obj.put("img", imgs.get(i).attr("src"));
obj.put("movieAge", movieAges.get(i).text());
obj.put("movieTitle", movieTitles.get(i).text());
obj.put("movieRate", movieRates.get(i).text());
obj.put("movieOpenDate", movieOpenDates.get(i).text());
// movieList에 생성한 JSONObject 추가
movieList.add(obj);
}
// System.out.println(" movieList : " + movieList);
}
}
클래스명 | 설명 |
Document | Jsoup 얻어온 결과 HTML 전체 문서 |
Element | Document의 HTML 요소 |
Elements | Element가 모인 자료형. for나 while 등 반복문 사용이 가능 |
Connection | Jsoup의 connect 혹은 설정 메소드들을 이용해 만들어지는 객체, 연결을 하기 위한 정보를 담고 있음 |
Response | Jsoup가 URL에 접속해 얻어온 결과. Document와 다르게 status 코드, status 메시지나 charset같은 헤더 메시지와 쿠키등을 가지고 있음 |
참조
'1. 프로그래밍 > 1-2. Java' 카테고리의 다른 글
Java - [ StringTokenizer ] (0) | 2022.06.14 |
---|---|
JAVA - [ JAVA에서 JS 코드 사용 ] (0) | 2022.05.12 |
Java - [ Json Simple 라이브러리 (JSON형태로 만들기) ] (0) | 2022.05.02 |
Java - [데이터 타입 / 형 변환 / 연산자] (0) | 2022.02.24 |
Java - [단축키 / Basic] (0) | 2022.02.23 |