[java] Jsoup을 사용하여 웹페이지 응답 타임아웃 설정하기

웹 크롤링을 할 때, 특정 웹 페이지가 응답하지 않을 경우 대기 시간이 오래 걸리거나 프로그램이 멈출 수 있습니다. 이러한 문제를 해결하기 위해 Jsoup 라이브러리를 사용하여 웹페이지 응답 타임아웃을 설정할 수 있습니다.

Jsoup란?

Jsoup은 HTML을 파싱하고 조작하는 Java 라이브러리입니다. Jsoup을 사용하면 웹 크롤링, HTML 데이터 추출, 웹 스크래핑 등을 쉽게 할 수 있습니다.

웹페이지 응답 타임아웃 설정하기

Jsoup을 사용하여 웹페이지 응답 타임아웃을 설정하려면 Connection 객체를 생성하고 timeout() 메서드를 호출하여 타임아웃 값을 설정하면 됩니다.

다음은 Jsoup을 사용하여 웹페이지 응답 타임아웃을 설정하는 예제입니다.

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

public class WebPageCrawler {
    public static void main(String[] args) {
        try {
            // 웹페이지 URL
            String url = "https://example.com";
            
            // Connection 객체 생성
            Connection conn = Jsoup.connect(url)
                    .timeout(5000); // 5초 타임아웃 설정
            
            // 웹페이지 요청 및 HTML 파싱
            Document doc = conn.get();
            
            // 파싱된 HTML 데이터 처리
            // ...
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 예제에서는 timeout(5000) 메서드를 사용하여 5초 타임아웃을 설정하고 있습니다. 즉, 웹페이지가 5초 이내에 응답하지 않으면 예외가 발생합니다.

결론

Jsoup을 사용하여 웹페이지 응답 타임아웃을 설정하면 크롤링 프로그램이 웹페이지 응답을 기다리는 시간을 제한할 수 있습니다. 이를 통해 프로그램의 성능을 향상시키고 예외 상황에서도 안정적으로 동작할 수 있습니다.

참고 자료