Jsoup - Java에서 HTML 코드 추출 및 구문 분석
Jsoup 는 서점 de Java 코드를 처리하는 사람 HTML입니다. 그것은이다 API 의 최상의 방법을 사용하여 데이터를 추출하고 조작하는 데 매우 편리합니다. DOM, CSS et jquery.
jsoup HTML5의 특성을 구현하고 최신 브라우저처럼 트리(DOM)에서 HTML 코드를 구문 분석합니다. JSOUP는 우산 아래 배포되는 오픈 소스 프로젝트입니다. MIT 라이선스. 소스 코드는 다음에서 찾을 수 있습니다. GitHub.
특징:
- URL, 파일 또는 문자열에서 HTML 코드를 구문 분석합니다.- DOM 트리 및 CSS를 사용하여 데이터 찾기 및 추출.
- 요소 및 텍스트 조작 HTML.
- 사용자의 구독을 지워 XSS 공격을 방지합니다.
- 깔끔한 HTML 코드를 만듭니다.
JSoup은 다양한 버전의 HTML에 맞게 설계되었으며 분석된 트리를 만듭니다.
클릭 jsoup 다운로드.
예:
Wikipedia 페이지를 검색하고, 변환하고, DOM으로 구문 분석하고, 뉴스 섹션에서 항목 목록을 선택합니다.
문서 문서 = Jsoup.connect("http://fr.wikipedia.org").get();
1 - 문서 구문 분석
이 코드는 document HTML:
String html = " < 머리> < 제목> 첫 번째 제목 "
+ "< 몸> < 문서화할 예제 코드 ";
문서 문서 = Jsoup.parse(html);< / o : p>< / span >< / div>
+ "< 몸> < 문서화할 예제 코드 ";
문서 문서 = Jsoup.parse(html);
파서는 제공 한 코드에서 명확한 HTML 코드를 만들기 위해 최선을 다할 것입니다.
- 닫히지 않은 태그(예: < blabla <로 변신 블라블라
- 암시적 태그(예:
< TD입니다> 테이블 < 테이블> < tr> < TD입니다>
- 생성 된 코드의 구조는 HTML 언어 (머리, 본문 및 페이지를 구성하는 요소)의 표준을 따릅니다.
- 닫히지 않은 태그(예: < blabla <로 변신 블라블라
- 암시적 태그(예:
< TD입니다> 테이블 < 테이블> < tr> < TD입니다>
- 생성 된 코드의 구조는 HTML 언어 (머리, 본문 및 페이지를 구성하는 요소)의 표준을 따릅니다.
2- 문자열에서 문서 구문 분석
우리는 Java String에 HTML을 가지고 있으며 내용을 포함하거나 잘 작성되었는지 확인하거나 수정하기 위해 HTML을 분해하고 싶습니다. 항목은 웹의 파일 또는 링크에서 읽을 수 있습니다.
미리 정의된 방법을 사용해야 합니다 Jsoup.parse(문자열 html) 또는 Jsoup.parse(문자열 html, 문자열 Uri) 페이지가 웹에서 제공되는 경우. 참조 class Jsoup.
String html = " < 머리> < 제목> 타이틀 "
+ "< 몸> < p>html en doc ";
문서 문서 = Jsoup.parse(html);< / o : p>< / span >< / div>
+ "< 몸> < p>html en doc ";
문서 문서 = Jsoup.parse(html);
방법 Jsoup.parse (문자열 html, 문자열 Uri) 새 HTML 코드 입력을 구문 분석합니다. 문서. URI 인수는 상대 URL을 절대 URL로 변환하는 데 사용되며 문서가 있는 URL로 초기화됨 복구. 그것이 가능하지 않다면, 당신은 할 수 있습니다 Jsoup.parse(String html).
매개 변수로 전달된 문자열은 null이 아니어야 하며 출력 문서는 head et de body. 만약에 당신 obturerez 트리 추출이 완료되지 않은 예외입니다. 올바르게 읽으십시오. 문서 자세한 내용은.
3- 본문 구문 분석
분석하고 싶은 보디수트가 하나 있습니다. 코드에는 HTML 코드가 아닌 요소가 포함될 수 있습니다(예: comments.
해결책은 Jsoup.parseBodyFragment (문자열 html) .< / o : p>< / span >< / div>
String html="< div> < 단락 ";
Document doc = Jsoup.parseBodyFragment(html);
요소 본문 = doc.body();< / o : p>< / span >< / div>
parseBodyFragment 메서드는 빈 문서를 만들고 구문 분석된 HTML을 본문에 삽입합니다. 를 사용하는 경우 Jsoup.parse(String html), 당신은 동일 결과이지만 출력을 본문 조각은 제공된 모든 요소가 구문 분석되었는지 확인합니다.
Document doc = Jsoup.parseBodyFragment(html);
요소 본문 = doc.body();
parseBodyFragment 메서드는 빈 문서를 만들고 구문 분석된 HTML을 본문에 삽입합니다. 를 사용하는 경우 Jsoup.parse(String html), 당신은 동일 결과이지만 출력을 본문 조각은 제공된 모든 요소가 구문 분석되었는지 확인합니다.
Document.body() 메서드는 요소를 검색합니다 하체(자식) 본체, doc.getElementsByTag("본문").
4- URL에서 문서로드
웹에서 HTML 문서를 검색 및 구문 분석하고 데이터를 찾으려면 Jsoup.connect(문자열 url).
문서 문서 = Jsoup.connect( "http://siteweb.com/"< / span >< / span>).get();
String title = doc.title();
connect(String url)은 새 connexion get()은 HTML 파일을 검색하고 구문 분석합니다. 만약에 a 검색 중에 오류가 발생하면 예외가 발생합니다. being 트리거됨.
인터페이스 connexion 디자인 chaining 구체적인 답변은 :
문서 문서 = Jsoup.connect("http://siteweb.com")
.data("query", "Java")
.userAgent("모질라")
.cookie("auth", "token")
.timeout(3000)
.post();
이 방법은 http 및 https 프로토콜의 URL만 지원합니다. 파일을 업로드해야 하는 경우 parse(파일 위치, 문자열 charsetName).
5- 파일에서 문서로드
HTML이 포함된 파일이 있는데 파일을 로드한 다음 분석하고 데이터를 추출하여 조작하려고 합니다. Jsoup.parse(File in, String encoding, String Uri).
파일 입력 = new 파일("/temp/siteinput.html");
문서 < / b>< / span> 문서 < / span> = < / span> < / span>Jsoup < / b>< / span>.< / span>parse < / span> (siteinput, "UTF-8", "http://siteweb.com/");
Uri 매개 변수는 < 요소 앞에 있는 문서의 상대 URL을 확인하는 데 사용됩니다 href입니다> 찾을 수 있습니다. 빈 String.
또 다른 유사한 메소드 parse(File in, String encoding) 가 있습니다. parse() 메서드는 파일 경로를 Uri로 사용합니다. 이 방법은 로컬 서버에서 작업할 때 효과적입니다.