(づ。◕‿‿◕。)づ이번 포스트는 Springboot에서 Jsoup을 이용하여 웹페이지 서버와 통신하는 실습을 진행하겠습니다. 웹페이지를 크롤링하기 위해 라이브러리를 조사할 때 가장 많은 reference가 있었던 다음의 두 라이브러리를 소개합니다. Jsoup? Selenium?Jsoup - HTML 문서에 저장된 데이터를 구문 분석, 추출 및 조작하도록 설계된 오픈 소스 JAVA 라이브러리입니다. - 정적인 자료를 수집하는 경우에 주로 사용합니다. - 정적 데이터를 비교적 빠르게 수집할 수 있지만 브라우저가 아닌 HTTP Request를 사용하기 때문에 동적 데이터를 수집하기 위해서는 해당 서버의 인증키 요구 등 수집할 수 없는 경우가 많다. Selenium - 웹드라이버를 통해서 웹 자동화를 지원해주는 JAVA 라이브러리입니다. - 빅데이터 관련, 동적인 자료를 수집할 때 주로 사용한다. - Jsoup에 비해 속도는 느리지만 브라우저 드라이버를 사용하여 동적 데이터도 수집 가능하다. - 현재 브라우저에 출력된 페이지의 소스를 파싱 할 수 있다. [개인 의견] - Jsoup은 백그라운드에서 HTTP Request / Response로 통신하기 때문에 실제 브라우저에서 보여지는 화면의 스크랩은 불가능하지만 Response를 통해 원하는 데이터를 json형식으로 받을 수 있다는 장점이 있으며, 웹페이지의 로그인할 때 보안정책을 사용한다면 이는 Jsoup을 사용해야 한다고 이해했습니다. - Selenium은 현재 브라우저에 출력된 페이지의 소스를 파싱 할 수 있다는 특징이 있습니다. (macro를 구현한다던지..) Jsoup 사용해보기Jsoup을 실제로 사용하기 전에 주요 요소 먼저 확인하겠습니다.
1. Dependencies 추가 gradle의 경우 + maven일 경우 다음으로 dependency 추가 가능 compile group: 'org.jsoup', name: 'jsoup', version: '1.14.1' 2. 원하는 페이지 크롤링하기 (본 포스팅에서는 간단하게 웹페이지 크롤링으로 만족하기로~.~) 아주 간단한 실습이기 때문에 주석으로 설명을 대체합니다. google에는 크롤링하려는 웹페이지의 주소를 입력하시면 됩니다. ( ex. google의 경우 https://www.google.com) html(), text(), body()에 대한 각각의 결과 화면입니다. # html()의 결과 화면 - 해당 웹페이지의 응답을 html로 출력한 모습입니다. # text()의 결과 화면 - 웹페이지에서 텍스트에 해당하는 부분만 출력한 모습입니다. # body()의 결과 화면 - html에서도 body의 내용만 출력한 모습입니다. 간단한 실습은 여기에서 종료하고 이후의 로그인이나 파일 업로드 등 활용은 다음 포스팅에서 진행하도록 하겠습니다. 감사합니다. [출처] : https://partnerjun.tistory.com/42 Java HTML parser, Jsoup로 원하는 값 얻어내기 - 기본 Jsoup는 아주 강력하고 재미있는 라이브러리다. 단순한 HTML 문서 파싱을 넘어 웹 사이트에 대한 Request, Response를 모두 처리할 수 있다. 덕분에 일부 특별한 경우(플래시, 애플릿, ActiveX같은 비표준 partnerjun.tistory.com [출처] : https://heekng.tistory.com/64 [Java] 크롤링 crawling, 셀레니움 Selenium [Java] 크롤링 crawling, 셀레니움 Selenium 웹 크롤링의 정식 명칭은 Web Scraping이며, 웹 사이트에서 원하는 정보를 추출하는 것을 의미한다. 보통 웹 사이트는 HTML기반이기 때문에 정보를 추출할 페이 heekng.tistory.com [출처] : https://kyunb.tistory.com/4 [Java] Jsoup (1) 이번 포스트는 Springboot에서 Jsoup을 이용하여 웹페이지 서버와 통신하는 실습을 진행하겠습니다. 웹페이지를 크롤링하기 위해 라이브러리를 조사할 때 가장 많은 reference가 있었던 다음의 두 라 kyunb.tistory.com |