1. 제품
  2.   편집자
  3.   Java
  4.   jsoup
 
  

jsoup: 자바 HTML 파서

jQuery 같은 간편함으로 Java에서 HTML 스크랩, 정리 및 조작

jsoup이란?

jsoup은 실제 HTML 작업을 위해 설계된 가볍지만 강력한 Java 라이브러리입니다. URL, 파일 또는 문자열에서 HTML을 파싱하고 DOM 탐색, CSS 선택자 및 최신 HTML5 메서드를 사용하여 데이터를 추출하고 조작할 수 있는 직관적인 API를 제공합니다. 웹 스크레이핑, 데이터 추출 및 HTML 정제에 이상적이며 브라우저처럼 잘못된 마크업도 원활하게 처리합니다.

정규식 기반 접근 방식과 달리 jsoup은 jQuery에서 영감을 받은 메서드로 깔끔한 객체 모델을 제공하며, 양식 제출, 속성 수정 및 텍스트 추출과 같은 작업을 단순화합니다. 종속성이 없고 MIT 라이선스가 적용되어 있어 안정적인 HTML 처리가 필요한 Java 개발자들에게 인기가 많습니다.

jsoup의 주요 장점:

  • 실제 HTML 처리: 브라우저처럼 지저분한 HTML 파싱
  • jQuery 스타일 구문: 친숙한 CSS 선택자 (예: doc.select("div.content"))
  • 스크레이핑에 최적화: 리디렉션 추적, 쿠키 처리 및 양식 제출
  • 크로스 플랫폼: 네이티브 종속성 없는 순수 Java
  • 보안: 내장 XSS 방지 및 HTML 정제 기능

데이터 마이닝, 웹 자동화 및 콘텐츠 분석에 이상적입니다.

GitHub

GitHub 통계

이름:
언어:
별:
포크:
특허:
저장소가 마지막으로 업데이트된 시간:

jsoup을 선택해야 하는 이유

  • 간편함: CSS 선택자 지원 직관적인 API
  • 신뢰성: 2009년부터 활발히 유지보수
  • 성능: 스트리밍 및 대용량 문서에 최적화
  • 유연성: 조각, 파일 또는 라이브 URL에서 작동
  • 깔끔한 출력: HTML 예쁘게 출력 및 재포맷

설치 방법

Maven 또는 Gradle로 jsoup 추가:

Maven



    org.jsoup
    jsoup
    1.17.2


Gradle


implementation 'org.jsoup:jsoup:1.17.2'

시스템 요구 사항: Java 8+

코드 예제

jsoup의 실용적인 사용 사례:

jsoup으로 HTML 파싱

예제 1: 문자열에서 문서 파싱

Java 문자열에 HTML이 있고 내용을 가져오거나 수정하려는 경우 jsoup을 사용하면 몇 줄의 코드로 구현할 수 있습니다.

parse(String html, String baseUri) 메서드는 입력 HTML을 새 Document로 변환합니다. baseUri 매개변수는 상대 URL을 절대 URL로 확인하는 데 도움이 되며 문서가 검색된 URL에 해당해야 합니다. 관련이 없거나 HTML에 <base> 요소가 포함된 경우 더 간단한 parse(String html) 메서드를 대신 사용할 수 있습니다.

예제 2: CSS 선택자로 요소 찾기

CSS 선택자를 사용하여 요소를 찾거나 조작하려면 HTML 문자열을 직접 파싱하여 조작합니다:

예제 3: 요소의 HTML 수정

요소의 HTML을 수정해야 하는 경우 다음 샘플 코드와 같이 Element의 HTML 설정자 메서드를 사용합니다.

고급 기능

jsoup은 전문적인 HTML 처리를 지원합니다:

  • 양식 처리: POST 데이터 제출:

    양식 제출

    
        Connection.Response res = Jsoup.connect("https://example.com/login")
            .data("username", "user", "password", "pass")
            .method(Connection.Method.POST)
            .execute();
        Document dashboard = res.parse();
        
    
  • 프록시 지원: 프록시를 통한 스크레이핑:

    프록시 설정

    
        Document doc = Jsoup.connect("https://target.com")
            .proxy("127.0.0.1", 8080)
            .get();
        
    
  • DOM 조작: HTML 구조 수정:

    DOM 변경

    
        doc.select("div.ads").remove(); // 모든 광고 제거
        doc.select("h1").attr("class", "header"); // CSS 클래스 추가
        
    

jsoup vs HTMLUnit

주요 차이점:

  • 초점: jsoup은 정적 HTML 파싱, HTMLUnit은 브라우저 시뮬레이션(JavaScript 실행)
  • 속도: jsoup은 순수 HTML 파싱에서 더 빠름
  • API 스타일: jsoup은 CSS 선택자, HTMLUnit은 Selenium 모방
  • 사용 사례: jsoup은 스크레이핑, HTMLUnit은 동적 페이지 테스트
  • 종속성: jsoup은 없음, HTMLUnit은 추가 라이브러리 필요

결론

jsoup은 Java 개발자를 위한 궁극의 HTML 도구 키트입니다. 다음에 이상적입니다:

  • 웹 스크레이핑: 모든 웹사이트에서 데이터 추출
  • 데이터 정리: HTML 정제 및 표준화
  • 콘텐츠 분석: RSS 피드 또는 웹 아카이브 파싱
  • 테스트: 앱 내 HTML 구조 검증

MIT 라이선스와 직관적인 API로 Java 기반 HTML 처리의 최적 선택입니다.

유사한 제품

 한국인