JSoup를 사용해 HTML 문서를 가져오는 것은 매우 간단합니다. Jsoup.connect(URL).get() 메서드를 통해 웹 페이지를 불러올 수 있으며, 이로써 문서를 파싱하여 Java 객체로 다룰 수 있습니다. 이 기능은 리눅스 환경에서도 유용하게 사용되며, 데이터를 분석하거나 웹 사이트 정보를 수집하는 데 필수적입니다.
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JSoupExample {
public static void main(String[] args) {
try {
Document doc = Jsoup.connect("http://example.com").get();
System.out.println("HTML 문서: " + doc.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
위 코드는 http://example.com 웹 페이지를 가져와 HTML 문서를 출력하는 예제입니다. 리눅스 시스템에서 실행할 때도 동일하게 작동하며, 웹 데이터를 손쉽게 수집할 수 있습니다.
HTML 태그 선택 및 요소 검색
JSoup는 CSS 선택자를 사용하여 특정 HTML 태그를 선택하거나 원하는 요소를 쉽게 검색할 수 있습니다. 이를 통해 복잡한 HTML 구조에서도 원하는 정보를 추출할 수 있습니다.
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
// 특정 태그 및 클래스 선택
Elements links = doc.select("a.example-class");
for (Element link : links) {
System.out.println("링크: " + link.attr("href"));
System.out.println("텍스트: " + link.text());
}
위 예제는 a 태그에 example-class라는 클래스를 가진 요소를 선택해, 링크와 텍스트를 출력하는 코드입니다. CSS 선택자를 사용해 원하는 태그와 요소를 효율적으로 찾을 수 있습니다.
속성값 추출 및 수정
HTML 요소의 속성값을 쉽게 추출하고 수정할 수 있어, 데이터를 정리하거나 특정 태그의 속성을 바꿀 때 유용합니다. 예를 들어, <img> 태그의 src 속성을 추출하여 이미지 링크를 수집하거나 href 속성을 변경하는 작업을 할 수 있습니다.
// 속성값 추출
Element img = doc.select("img").first();
String imgSrc = img.attr("src");
System.out.println("이미지 URL: " + imgSrc);
// 속성값 수정
img.attr("src", "https://new-image-url.com/image.jpg");
System.out.println("수정된 이미지 URL: " + img.attr("src"));
이 코드는 HTML 문서에서 첫 번째 이미지 URL을 가져오고 src 속성을 새 이미지 링크로 수정하는 예제입니다. 이러한 기능은 특히 리눅스 환경에서 자동화된 스크래핑 작업을 할 때 유용하게 쓰입니다.
텍스트 추출 및 정제하기
HTML 태그와 관계없이 텍스트만 추출할 수 있어, 필요한 정보만 가져오는 작업이 가능합니다. 이를 통해 복잡한 HTML 구조에서도 원하는 텍스트만 정제할 수 있습니다.
// 특정 요소의 텍스트 추출
Element content = doc.select("div.content").first();
String text = content.text();
System.out.println("추출된 텍스트: " + text);
위 코드는 div 태그 내 content 클래스를 가진 요소에서 텍스트만 추출하여 출력하는 예제입니다. HTML 태그를 제거한 깨끗한 텍스트를 가져올 수 있으며, 데이터 정리와 분석 작업에 활용됩니다.
참고사이트
'JAVA' 카테고리의 다른 글
[JAVA] JSoup 데이터 전처리와 저장 (1) | 2024.10.28 |
---|---|
[JAVA] JSoup 데이터 정제 및 변환 (3) | 2024.10.28 |
[JAVA] JSoup HTML 데이터 추출 (0) | 2024.10.28 |
[JAVA] JSoup CSS 선택자 (0) | 2024.10.28 |
[JAVA] JSoup 라이브러리 추가 (Gradle, Maven) (1) | 2024.10.28 |
[JAVA] JSoup 소개 (0) | 2024.10.28 |
[JAVA] byte[] 배열을 string[] 배열로 변환 (0) | 2018.11.14 |
간단한 multipart 파일 업로드 (0) | 2018.09.05 |