[JAVA] JSOUP : Java HTML Parser

Mosekim·2022년 10월 7일
0

JAVA

목록 보기
1/1

[JSOUP]

  1. HTML 문서에 포함된 데이터를 분석 추출하는 JAVA 오픈소스 라이브러리
  2. 정적 페이지를 크롤링 하는데 주로 사용된다.
  • 크롤링(Crawling)
    HTML 페이지를 가져와서 필요한 데이터를 추출하는 작업을 의미

[사용예제]

  1. 라이브러리 추가
    https://mvnrepository.com/artifact/org.jsoup/jsoup
  • Maven, Gradle과 같은 빌드 도구를 사용하여 의존성을 추가하거나
    jar를 다운받아 클래스패스에 추가한다.
  1. 소스
import java.io.IOException;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JsoupTest {
	public static void main(String[] args) {
    	
        // [Test URL] : SBS News
		String URL = "https://news.sbs.co.kr/news/newsflash.do?plink=SNB&cooper";
        
        // [Document] : Jsoup으로 가져온 HTML을 담을 객체
        Document doc = null;
        
        try {
        	// URL에 해당하는 HTML 전체 문서 가져오기
			doc = Jsoup.connect(URL).get();
		} catch(IOException e) {
			e.printStackTrace();
		}
        
        // 출력 변수 선언
        String title;
		String content;
		String date;
		String writer;
        
        // [Element]	: Document의 HTML 요소
        // [Elements]	: Element가 모인 자료형
        // 특정 값 추출	: css 선택문법을 이용, 태그를 검색하여 데이터를 가져온다.
        List<Element> elements = doc.select(".w_news_list ul > li");
        
        // 결과 값 출력
        for(Element element : elements) {
			title 	= "^title : " 	+ element.getElementsByClass("sub").text();
			content = "^content : " + element.getElementsByClass("read").text();
			date 	= "^date : " 	+ element.getElementsByClass("date").text();
			writer 	= "^writer : " 	+ element.getElementsByClass("name").text();
            
            System.out.print(title + "\n" + content + "\n" + date + "\n" + writer + "\n");
			System.out.println("-------------------------------------------------");
		}
    }
}
  1. 결과

[참고]

  1. 동적 페이지는 크롤링 되지 않는다. (파싱 전 HTML 소스를 가져옴)
  2. 동적 페이지를 크롤링하는 방법에는 셀레니움(Selenium)이 있다.

[출처]

profile
아 몰라

0개의 댓글