[java] Jsoup을 사용하여 웹페이지 내 폼 데이터 추출하기
오늘은 Jsoup 라이브러리를 사용하여 Java로 웹페이지의 폼 데이터를 추출하는 방법을 알아보겠습니다. Jsoup은 Java로 웹크롤링을 할 때 매우 유용한 라이브러리로 알려져 있습니다.
1. Jsoup 라이브러리 추가하기
먼저 프로젝트에 Jsoup 라이브러리를 추가해야 합니다. Maven 프로젝트인 경우 pom.xml
파일에 다음 의존성을 추가합니다:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version>
</dependency>
Gradle 프로젝트인 경우 build.gradle
파일에 다음 의존성을 추가합니다:
implementation 'org.jsoup:jsoup:1.14.3'
의존성을 추가한 후, 프로젝트를 빌드해 Jsoup 라이브러리를 사용할 준비를 합니다.
2. 웹페이지에서 폼 데이터 추출하기
이제 Jsoup을 사용하여 웹페이지에서 폼 데이터를 추출해보겠습니다. 예를 들어, 다음과 같은 HTML 폼이 있는 웹페이지가 있다고 가정해봅시다:
<form id="myForm" method="post" action="/submit">
<input type="text" name="username" value="John Doe">
<input type="password" name="password">
<input type="submit" value="Submit">
</form>
위의 폼에서 사용자 이름과 패스워드를 추출해보겠습니다. 아래는 Jsoup을 사용하여 폼 데이터를 추출하는 Java 코드입니다:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class FormDataExtractor {
public static void main(String[] args) throws IOException {
// 웹페이지 URL
String url = "https://www.example.com/form-page";
// Jsoup을 사용하여 웹페이지를 파싱
Document doc = Jsoup.connect(url).get();
// 폼 요소를 선택
Element form = doc.selectFirst("form#myForm");
// 사용자 이름 필드 값 가져오기
String username = form.selectFirst("input[name=username]").val();
System.out.println("Username: " + username);
// 패스워드 필드 값 가져오기
String password = form.selectFirst("input[name=password]").val();
System.out.println("Password: " + password);
}
}
위의 코드에서 우리는 jsoup.Jsoup
클래스를 사용하여 웹페이지를 파싱하고, 폼 요소를 선택한 후 해당 필드의 값을 가져옵니다.
3. 실행 결과
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:
Username: John Doe
Password:
위의 결과로 보면, 사용자 이름 필드의 값은 “John Doe”이고 패스워드 필드의 값은 빈 값입니다.
이제 웹페이지의 폼 데이터를 성공적으로 추출한 것입니다. 이렇게 추출한 데이터를 활용하여 다른 작업을 수행할 수 있습니다.