jsoup란
자바(Java)로 만들어진 HTML 파서(Parser)
jsoup은 자바 언어로써 HTML을 다루기 쉽고, 강력한 기능을 제공
jsoup로 할 수 있는 작업 종류
1. URL, 파일, 문자열을 소스로 하여 HTML을 파싱
2. DOM 구조를 추적하거나 익숙한 CSS 선택자를 사용하여 데이터를 찾아 추출
3. 문서내의 HTML 요소, 속성, 텍스트를 조작
4. 사용자가 입력한 데이터로부터 XSS(Cross-Site Script) 공격을 방지하기 위해서 안전한 화이트 리스트 방식으로 지정된 태그만 남기고 나머지는 제거
5. 깔끔한 형태의 HTML을 출력
jsoup는 오픈 소스 프로젝트로 제공된다.
라이센스는 MIT
다음 사이트에서 다운로드 및 필요한 정보를 얻을 수 있습니다.
1. 문서의 파싱
문서는 URL, 파일, 문자열로 부터 파싱할 수 있다.
1.1. 문서전체를 가지고 있는 문자열로부터 파싱
import org.jsoup.Jsoup; import org.jsoup.nodes.Document; |
문서로부터 html tag를 모두 제거 하고 순수 문자열만 얻고자 할 때는 String text = doc.text(); 를 사용.
1.2. 문서의 body 일부분을 가지고 있는 문자열로부터 파싱
import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; ... String html = "<div><p>Lorem ipsum.</p>"; Document doc = Jsoup.parseBodyFragment(html); Element body = doc.body(); |
doc.body() 메소드는 문서의 body 요소를 추출한다.
doc.getElementByTag("body") 와 동일
사용자가 웹페이지의 폼으로 부터 입력한 html 태그를 포함한 입력 내용에서 "cross-site scripting"공격을 피하기 위해서 화이트 리스트 기반의 tag 제거 기능을 사용할 수 있다.
Jsop.clean(String bodyHtml, Whitelist whitelist);
허용하는 tag를 지정하는 Whitelist 클래스에 대해서는 API 문서를 참조
1.3. URL로부터 문서를 파싱하는 방법
GET 방식의 호출
Document doc = Jsoup.connect("http://example.com/").get(); String title = doc.title(); |
POST 방식의 호출
Document doc = Jsoup.connect("http://example.com") .data("query", "Java") .userAgent("Mozilla") .cookie("auth", "token") .timeout(3000) .post(); |
jsoup는 http와 https만을 지원한다.
1.4. 파일로부터 파싱하는 방법
File input = new File("/tmp/input.html"); Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/"); |
parse메소드의
첫 번째 인자는 파싱할 파일의 File 객체
두 번째 인자는 파일의 캐릭터셋
세 번째 인자는 파일내의 a, img 태그 등의 base url
base url 이 없는 오버로드 된 메소드 -> Jsoup.parse(input, "UTF-8");
자료출처 및 더 세부적인 내용
'공부방 > Java' 카테고리의 다른 글
SpringSecurity Authentication관련 클래스와 처리 (0) | 2021.01.01 |
---|---|
Request 객체 (0) | 2020.12.20 |
web.xml 수동으로 추가하는 방법 (0) | 2020.11.30 |
jar파일을 추가해보자 (0) | 2020.08.31 |
ATOM 및 ATOM 플러그인 설치하다. (0) | 2020.08.14 |