오늘 공부해볼 라이브러리는 JSoup 라이브러리이다. (간편한 크롤링 방법)
Jsoup을 활용하면 까다로운 절차인 HttpURLConnection을 생략하고 간편하게 API Request(요청) 및 Response(응답)을 받을 수 있다. 먼저 JSoup 라이브러리를 설치해보자.
1. Jsoup 설치 방법
Maven, Gradle 또는 .Jar(순수 Java) 환경에 따라 설치 방법이 달라진다.
• Maven [pom.xml]
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.17.2</version>
</dependency>
• Gradle [gradle.build]
dependencies {
implementation 'org.jsoup:jsoup:1.17.2'
}
• .Jar의 경우 core library 설치 후 Import하면 된다.
자세한 내용은 jsoup.org를 참고하자.
Download and install jsoup
Download and install jsoup jsoup is available as a downloadable .jar java library. The current release version is 1.17.2. What's new See the 1.17.2 release announcement for the latest changes, or the changelog for the full history. Previous releases of jso
jsoup.org
2. Jsoup 사용법
본격적으로 코드를 알아보기 전 핵심 함수들을 알아보자.
• Document - Connect 이후 받은 HTML 전체 문서
• Elements - Element가 모인 자료형
• Element - Document의 HTML 요소
[ JSoup 소스 예제]
public String callApi(String url) {
String rtnStr = "";
try {
Document doc = Jsoup.connect(url).timeout(10 * 1000).post();
Element body = doc.body();
rtnStr = body.text();
} catch (IOException e1) {
System.out.println("Error Occurrence" + e1.getMessage());
}
return rtnStr;
}
현재 메소드 형태로 구현해 보았는데, Url만 입력해 놓으면 그에 맞는 URL로 데이터를 Request하게 된다.
.connect(url) - url요청을 보낸다.
.timeout - 타임아웃 설정
.post() / .get() - HTTP 전송 방법
데이터를 요청한 후 Element.text()를 활용하여 받은 데이터를 텍스트화 시킨다.
오늘 Java 라이브러리 중 하나인 Jsoup를 살펴보았다. Jsoup는 HTML을 파싱하여 웹페이지에서 데이터를 추출하거나, 웹페이지와 상호작용하는 데 필요한 강력한 도구이다. 특히, Jsoup의 get() 메소드와 post() 메소드를 활용하면 HTTP GET 요청과 POST 요청을 손쉽게 전송할 수 있다. 이를 통해 웹페이지를 검색하거나, 웹페이지에 정보를 제출하는 등의 작업을 수행할 수 있다.
Jsoup를 이용하면 웹 크롤링이나 스크레이핑 작업을 훨씬 효율적으로 수행할 수 있다. 그리고 Jsoup의 기능은 이것뿐만이 아니다. 다양한 기능들이 있으므로, 실제로 Jsoup를 사용해 그 편리함을 직접 체험해보기를 권한다.
기회가 된다면 Jsoup의 다양한 기능에 대해 살펴볼 예정이다.
'👨💻 프로그래밍 > Java' 카테고리의 다른 글
[Java] 환경에 따른 분기처리 (0) | 2024.04.26 |
---|---|
[Java] 간단 Null Parsing 오류 처리 방법 (0) | 2024.02.13 |
[Java] JSP/Java Timeout 설정 (N초 후 프로세스 실행) (1) | 2024.02.06 |
[Java] Java 현재 날짜 및 시간 값 가져오기 (Date Class) (1) | 2024.02.06 |
[Java] 10진법 int값 n진수로 전환하기 (0) | 2024.02.05 |