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

웹 스크레이핑은 웹사이트에서 데이터를 추출하여 분석하거나 활용하는 작업입니다. Jsoup은 Java에서 HTML을 파싱하고 조작할 수 있는 강력한 라이브러리입니다. 이번 튜토리얼에서는 Jsoup을 사용하여 웹페이지에서 링크 URL을 추출하는 방법을 알아보겠습니다.

1. Jsoup 라이브러리 추가하기

먼저 프로젝트에 Jsoup 라이브러리를 추가해야 합니다. Maven이나 Gradle을 사용하는 경우, pom.xml 또는 build.gradle 파일에 다음 의존성을 추가하세요.

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

2. URL에서 HTML 문서 가져오기

Jsoup을 사용하여 웹페이지의 HTML 문서를 가져오기 위해 connect() 메소드를 사용합니다. 다음은 예제입니다.

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

위 코드는 https://www.example.com의 HTML 문서를 가져옵니다.

3. 링크 URL 추출하기

이제 가져온 HTML 문서에서 링크 URL을 추출해보겠습니다. Jsoup은 CSS 선택자를 사용하여 요소를 선택할 수 있습니다. 링크 URL은 <a> 요소의 href 속성에 저장되어 있습니다.

Elements links = doc.select("a[href]");

for (Element link : links) {
    String href = link.attr("href");
    System.out.println(href);
}

doc.select("a[href]")는 HTML 문서에서 <a> 요소를 선택합니다. link.attr("href")를 사용하여 링크의 URL을 가져옵니다. 이후 URL을 출력하는 간단한 예제 코드입니다.

4. 실행 결과

위 코드를 실행하면 웹페이지에서 모든 링크 URL을 출력합니다.

https://www.example.com/page1.html
https://www.example.com/page2.html
https://www.example.com/page3.html
...

이렇게 Jsoup을 사용하여 웹페이지 내 링크 URL을 추출하는 방법을 알아보았습니다. Jsoup은 다양한 기능을 제공하므로 필요한 경우 API 문서를 참고해보세요.

참고 자료