[java] Jsoup을 사용하여 웹페이지 데이터 추출하기

Java에서 웹페이지의 데이터를 추출하고자 할 때, Jsoup 라이브러리는 매우 유용한 도구입니다. 이 라이브러리는 HTML 파싱을 위한 간편한 API를 제공하여 웹페이지의 특정 요소를 손쉽게 추출할 수 있습니다. 이번 글에서는 Jsoup을 사용하여 웹페이지의 데이터를 추출하는 방법에 대해 알아보겠습니다.

Jsoup 라이브러리 추가하기

먼저, 프로젝트에 Jsoup 라이브러리를 추가해야 합니다. Maven을 사용하고 있다면 pom.xml 파일에 다음과 같은 의존성을 추가합니다:

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

Maven 외에 다른 빌드 도구를 사용하고 있다면, 해당 빌드 도구의 문서를 참고하여 Jsoup을 추가하세요.

웹페이지 데이터 추출하기

이제 Jsoup 라이브러리를 사용하여 실제로 웹페이지의 데이터를 추출해보겠습니다.

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

public class WebDataExtractor {
    public static void main(String[] args) {
        try {
            // 웹페이지의 URL을 지정합니다.
            String url = "https://example.com";
            
            // Jsoup을 사용하여 웹페이지의 HTML을 가져옵니다.
            Document doc = Jsoup.connect(url).get();
            
            // HTML에서 원하는 요소를 선택합니다.
            // 아래 예제는 웹페이지에서 모든 링크를 추출하는 방법을 보여줍니다.
            Elements links = doc.select("a[href]");
            
            // 추출된 링크를 순회하며 출력합니다.
            for (Element link : links) {
                System.out.println("Link: " + link.attr("href"));
                System.out.println("Text: " + link.text());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드는 https://example.com 웹페이지에서 모든 링크를 추출하는 기능을 보여줍니다. Jsoup.connect(url).get()을 사용하여 웹페이지의 HTML을 가져오고, .select("a[href]")를 사용하여 모든 링크 요소를 선택합니다. 추출된 링크들은 Element 객체의 리스트로 반환되며, 이를 순회하며 링크의 URL과 텍스트를 출력합니다.

결론

Jsoup을 사용하여 Java에서 웹페이지의 데이터를 추출하는 방법에 대해 알아보았습니다. 이 라이브러리를 사용하면 HTML 파싱 작업을 쉽게 수행할 수 있으며, 웹 크롤링 등 다양한 웹 데이터 처리 작업에서 유용하게 활용될 수 있습니다.