[java] Java Jsoup을 사용하여 웹페이지 데이터 다운로드하기

이번 글에서는 Java Jsoup을 사용하여 웹페이지의 데이터를 다운로드하는 방법을 알아보겠습니다. Jsoup은 HTML 파싱 및 데이터 추출을 위한 유용한 자바 라이브러리입니다.

1. Jsoup 라이브러리 추가

우선, 프로젝트에 Jsoup 라이브러리를 추가해야 합니다. Maven 프로젝트의 경우, pom.xml 파일에 다음과 같이 의존성을 추가합니다:

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.2</version>
</dependency>

Gradle 프로젝트의 경우, build.gradle 파일에 다음과 같이 의존성을 추가합니다:

implementation 'org.jsoup:jsoup:1.14.2'

의존성을 추가한 후, 프로젝트를 빌드하여 Jsoup 라이브러리를 사용할 수 있게 됩니다.

2. 웹페이지 데이터 다운로드

이제 Jsoup을 사용하여 웹페이지 데이터를 다운로드해보겠습니다. 예를 들어, “https://www.example.com” 의 HTML 코드를 다운로드하고 출력하는 간단한 예제를 작성해보겠습니다:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class WebPageDownloader {
    public static void main(String[] args) {
        try {
            // 웹페이지 데이터 다운로드
            Document doc = Jsoup.connect("https://www.example.com").get();
            
            // 다운로드한 데이터 출력
            System.out.println(doc.html());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 예제에서는 Jsoup.connect(url).get() 메서드를 사용하여 웹페이지 데이터를 다운로드하고, doc.html() 메서드를 사용하여 HTML 코드를 가져와서 출력합니다.

3. 데이터 추출

Jsoup은 HTML 파싱과 데이터 추출을 위한 다양한 기능을 제공합니다. 위의 예제를 기반으로 데이터 추출을 해보겠습니다. 다음은 웹페이지에서 특정 요소를 추출하여 출력하는 예제입니다:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class WebPageDataExtractor {
    public static void main(String[] args) {
        try {
            // 웹페이지 데이터 다운로드
            Document doc = Jsoup.connect("https://www.example.com").get();
            
            // 데이터 추출
            Element titleElement = doc.select("title").first();
            String title = titleElement.text();
            
            Elements linkElements = doc.select("a[href]");
            for (Element linkElement : linkElements) {
                String link = linkElement.attr("href");
                System.out.println(link);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 예제에서는 doc.select(cssQuery) 메서드를 사용하여 특정 요소를 추출합니다. 예를 들어 doc.select("title")은 모든 <title> 요소를 반환하고, doc.select("a[href]")은 모든 <a href> 요소를 반환합니다.

결론

Java Jsoup은 웹페이지 데이터 다운로드와 HTML 파싱을 쉽게 수행할 수 있도록 도와주는 좋은 라이브러리입니다. 이번 글에서는 Jsoup을 사용하여 웹페이지 데이터를 다운로드하는 방법과 데이터 추출하는 방법에 대해 알아보았습니다. Jsoup을 사용하면 웹 크롤링이나 데이터 추출 작업을 효율적으로 수행할 수 있으므로, 프로젝트에서 활용해보시기 바랍니다.

참고 자료