기본 콘텐츠로 건너뛰기

[JAVA] :: Jsoup을 이용한 HTML페이지 Parsing

최근에 HTML페이지를 Parsing하여 페이지 이미지를 추출해 컴퓨터에 저장하는 일이 생겨

찾아보다가 알게된 Jsoup에 사용법에 대해 남겨 놓으려고 한다.

pom.xml
<dependency>
  <!-- jsoup HTML parser library @ http://jsoup.org/ -->
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.8.3</version>

</dependency>

최신버전으로 Maven pom에 등록후 사용이 가능하다.

Document doc = Jsoup.connect(url)
   .timeout(0)
   .ignoreContentType(true)
   .get();

을 호출하면 Document Object로 HTML코드들이 반환된다.

String imgUrl = doc.select("#IMG1").attr("src");

추출하고자하는 HTML field의 ID or Tag name or css등으로 원하는 부분을 Select할 수 있다.

그리고 해당 태그의 속성의 값만을 추출할 수도있다 .attr을 사용함으로써.

끝이다. 매우 간단하다..

몇몇 사이트는 페이지를 Jsoup로 호출하면 416 에러가 발생하면서 robot으로 인식하여 페이지 접근을 막아놓은 사이트들이 있다.

그럴땐 .userAgent("로봇이름") 으로 증명하면된다. 왠만하면 나는 google robot입니다 라고 보내면 거의다 통과된다.

Jsoup를 이용하여 로그인후 이용해야하는 페이지 역시 Parsing할 수있다.
.data("필드 이름","필드 값"); 을 사용하면 접근이 가능하다.

이상이다. 

댓글

이 블로그의 인기 게시물

[IOS] 아이폰순정에서 유료 및 크랙앱 이용방법

IOS, 순정 아이폰에서 유료앱 및 크랙앱 이용 방법이 있길래 내용을 함께 공유 하고자 합니다. 우선 아이폰에서 아래 링크로 가시면 다운로드를 하실 수 있습니다. LINK (https://www.tutuapp.vip/ios/) 다운로드 받으신 후에 아래와 같이 셋팅해줍니다. 그다음 실행하시면 접속이 되십니다. 그리고 tutuapp에서 받으신 어플이 신뢰 할 수 없다는 메세지를 만나게 되신다면 위에 이미지대로 기기관리에 들어가셔서 해당 어플에 대해 신뢰 버튼을 눌러주시면 동작하시는것을 확인 하실수 있습니다 :)

[Laravel] Jasperreport 적용 및 사용법..

저는 Laravel Framework를 사용하여 프로젝트를 진행중입니다. 사용하면서 Report를 그려야 할 일이 생겼는데.... HTML로 그리자니 수작업도 수작업이지만 원하는대로 이쁘게 만들기가 여간 힘든게 아니다.. 그래서 떠오른게 바로 Java로 개발할때 사용하던 Jasperreport.. PHP에서도 Jasperreport를 사용 가능 한가 찾아보니.. 할 수 있더라.. Jasperreport jar를 명령어로 실행하여 리포트를 만드는게 가능하던것.. !! 우선 Laravel(PHP)에서 composer require geekcom/phpjasper 명령어를 통해 Jasperreport를 사용 할 수 있도록 서포트 해주는 라이브러리를 추가 한다. 그리고 사용 방법은 Controller or Service단에서 여러분들의 데이터를 가공후 아래와 같이 호출을 해주면 됩니다. 저는 JSON으로 이용하여 사용하고 있기때문에 JSON  adapter  기준으로 아래 샘플을 보여드립니다 . use PHPJasper\PHPJasper ; $input = ' /your_input_path/your_report.jasper ' ; .jxml, .jasper 파일 경로 $output = ' /your_output_path ' ; // Report가 생성될 경로 $data_file = __DIR__ . ' /your_data_files_path/your_json_file.json ' ; // JSON 파일 * Php에서 array를 json파일로 저장후 $data_file로 사용하여 넘겨도 됩니다. // $jsonArry = array('data' => $jsonData); // $jsonTmpfilePath = $output . '.json'; // $jsonTmpfile = fopen($jsonTmpfilePath, 'w');...

[JAVA] :: JAVA에서 간단히 URL 파일 다운로드 방법

Java에서 정말 간단하게 URL파일을 다운 받을때 사용하면 좋은거 같아서 남겨두려 한다. 코드는 이게 끝이다. try(InputStream in = new URL(fileURL).openStream()){      Files.copy(in, Paths.get("저장할 파일 경로 및 파일명+".파일 확장자"),     StandardCopyOption.REPLACE_EXISTING); } 이상이다.