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

개요

웹페이지 내에 포함된 Javascript 소스코드를 추출하는 방법을 알아보겠습니다. Java에서는 Jsoup 라이브러리를 사용하여 HTML 문서를 파싱하고, 원하는 요소를 추출할 수 있습니다.

Jsoup 라이브러리 추가

Jsoup을 사용하기 위해서는 먼저 해당 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음과 같이 의존성을 추가합니다.

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

Gradle을 사용하는 경우, build.gradle 파일에 다음과 같이 의존성을 추가합니다.

implementation 'org.jsoup:jsoup:1.14.1'

웹페이지 파싱하기

Jsoup을 사용하여 웹페이지를 파싱하기 위해서는 connect() 메서드로 웹페이지에 연결하고, get() 메서드로 HTML 문서를 가져와야 합니다. 예를 들어, 다음과 같이 https://example.com 웹페이지에서 HTML 문서를 가져올 수 있습니다.

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

Javascript 추출하기

웹페이지에서 Javascript를 추출하기 위해서는 해당 요소를 CSS 선택자 또는 태그 이름으로 찾아내야 합니다. 예를 들어, 웹페이지 내에 있는 모든 script 태그에서 Javascript를 추출하고 싶다면 다음과 같이 사용할 수 있습니다.

Elements scriptElements = document.select("script");
for (Element scriptElement : scriptElements) {
    String javascript = scriptElement.html();
    System.out.println(javascript);
}

위 코드는 웹페이지에서 모든 script 태그를 선택하고, 각 태그의 내용을 추출하여 출력합니다.

예제

다음은 실제로 https://example.com 웹페이지에서 Javascript를 추출하는 예제 코드입니다.

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

import java.io.IOException;

public class JavascriptExtractor {
    public static void main(String[] args) {
        String url = "https://example.com";
        try {
            Document document = Jsoup.connect(url).get();
            Elements scriptElements = document.select("script");
            for (Element scriptElement : scriptElements) {
                String javascript = scriptElement.html();
                System.out.println(javascript);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 예제 코드를 실행하면 해당 웹페이지의 Javascript 소스코드를 출력합니다.

참고 자료