[java] Jsoup을 사용하여 웹페이지 응답 에러 처리하기

웹 크롤링이나 웹 스크래핑을 할 때, Jsoup은 자주 사용되는 Java 라이브러리 중 하나입니다. Jsoup을 사용하면 HTML 페이지에서 데이터를 추출하고 조작하는 일이 간단하고 편리해집니다. 그러나 때로는 Jsoup을 사용하여 웹 페이지에 연결할 때 응답 에러가 발생할 수 있습니다. 이러한 에러를 처리하는 방법에 대해 알아보겠습니다.

Jsoup을 사용하여 웹 페이지에 연결하기

일반적으로 Jsoup을 사용하여 웹 페이지와 연결하려면 connect() 메서드를 사용합니다. 예를 들어, 다음과 같은 코드를 사용하여 웹 페이지에 연결할 수 있습니다.

String url = "https://example.com";
Document doc = Jsoup.connect(url).get();

위의 코드에서 connect(url)은 해당 URL에 연결하고 get()은 HTML 페이지를 가져옵니다.

Jsoup 에러 처리하기

하지만 때로는 연결할 웹 페이지에서 에러가 발생할 수 있습니다. 이 에러를 처리하기 위해 Jsoup은 ignoreHttpErrors(true) 메서드를 제공합니다. 이 메서드를 사용하여 웹 페이지에 연결하고, 만약 에러가 발생하면 에러 코드를 가져올 수 있습니다. 예를 들어,

String url = "https://example.com";
Response response = Jsoup.connect(url).ignoreHttpErrors(true).execute();
int statusCode = response.statusCode();

위의 코드에서 ignoreHttpErrors(true)은 에러를 무시하고 웹 페이지에 연결하는 것을 의미합니다. execute()는 실제로 연결을 수행하고 statusCode()는 HTTP 응답 상태 코드를 가져옵니다.

예외 처리하기

이제 웹 페이지에 연결하고 에러 코드를 얻을 수 있는 방법을 알았으므로, 이를 활용하여 예외 처리를 할 수 있습니다. 예를 들어, 만약 에러 코드가 404인 경우 어떤 동작을 수행하고자 한다면 다음과 같이 코드를 작성할 수 있습니다.

String url = "https://example.com";
try {
    Response response = Jsoup.connect(url).ignoreHttpErrors(true).execute();
    int statusCode = response.statusCode();
    
    if (statusCode == 200) {
        // 웹 페이지 연결 성공
        Document doc = response.parse();
        // 웹 페이지에서 데이터 추출 및 조작
    } else {
        // 에러 처리
        System.out.println("웹 페이지 연결 에러: " + statusCode);
    }
} catch (IOException e) {
    // 예외 처리
    e.printStackTrace();
}

위의 코드는 404 에러인 경우 에러 처리를 수행하고, 그 외의 경우에는 웹 페이지에서 데이터를 추출하고 조작하는 예시입니다. 예외 처리를 통해 웹 페이지 연결 중 발생할 수 있는 예외 상황에 대비할 수 있습니다.

마무리

Jsoup을 사용하여 웹페이지에 연결하고 에러를 처리하는 방법에 대해 살펴보았습니다. ignoreHttpErrors(true) 메서드를 사용하여 에러를 무시하고 연결하고, statusCode() 메서드를 사용하여 에러 코드를 확인할 수 있습니다. 예외 처리를 함께 활용하여 웹 페이지 연결 중 발생할 수 있는 예외 상황에 대비하는 것이 좋습니다.

참고자료