Jsoup 크롤링 라이브러리
자바로 만들어진 HTML Parser
HTML 문서를 읽어 들인 후 DOM 객체로 변환
* 파이썬 HTML Parse = BeautifulSoup
Jsoup 라이브러리 추가
.jar 파일 다운 받아서 추가
프로젝트 우클릭 > Properties > Java Build Path > Add External JARs > .Jar파일추가
Jenie M/V 크롤링
크롤링할 사이트 : www.genie.co.kr/search/searchMv?query=아이유
소스 코드
package com.genie.demo.dao;
import java.io.IOException;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.Iterator;
import org.jsoup.*;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class crawling {
public static void main(String[] args) {
// Jsoup를 이용해서 뮤직비디오 크롤링
String name = "아이유"; //검색할 Artist
String url = "https://www.genie.co.kr/search/searchMv?query=" + name;//크롤링할 url
Document doc = null;
try {
doc = Jsoup.connect(url).get(); //Document에는 페이지의 전체 소스가 저장된다
}
catch (IOException e) {
e.printStackTrace();
}
//select를 이용하여 원하는 태그를 선택한다.
Elements element = doc.select("tr.list"); // MV 리스트가 있는 태그
String defaulturl = "https://www.genie.co.kr/detail/mediaInfo?xvnm=";
for (Element element1 : element) {
System.out.println("제목 : " + element1.select("td a").attr("title") ); //제목 크롤링
System.out.println("url : " + defaulturl + element1.attr("mvid") ); //url id 크롤링
System.out.println("썸네일 : " + element1.select("td a img").attr("src") + "\n" ); //썸네일 크롤링
}
}
}
1. Document 객체를 선언하고, 크롤링할 페이지의 url을 입력
String name = "아이유"; //검색할 Artist
String url = "https://www.genie.co.kr/search/searchMv?query=" + name;//크롤링할 url
Document doc = null;
try {
doc = Jsoup.connect(url).get(); //Document에는 페이지의 전체 소스가 저장된다
}
catch (IOException e) {
e.printStackTrace();
}
* artist의 이름을 입력하는 쿼리 부분을 별도의 변수로 받아서 name 변수만 바꾸면 다른 가수의 MV 크롤링 가능
2. 크롤링할 웹 페이지에서 개발자 도구를 사용해 html 코드 분석
크롤링할 부분을 감싸는 태그 = tr태그의 클래스 list
3. 제목, MV url, 썸네일 url 정보를 가지고 있는 tr.list를 elements에 넣고 for each 문으로 추출
//select를 이용하여 원하는 태그를 선택한다.
Elements element = doc.select("tr.list"); // MV 리스트가 있는 태그
String defaulturl = "https://www.genie.co.kr/detail/mediaInfo?xvnm=";
for (Element element1 : element) {
System.out.println("제목 : " + element1.select("td a").attr("title") ); //제목 크롤링
System.out.println("url : " + defaulturl + element1.attr("mvid") ); //url id 크롤링
System.out.println("썸네일 : " + element1.select("td a img").attr("src") + "\n" ); //썸네일 크롤링
}
* Element : Document의 HTML 요소
* Elements : Element가 모인 자료형. for나 while 등 반복문 사용이 가능하다.
***Jsoup select 문법
jsoup.org/cookbook/extracting-data/selector-syntax
doc.select("a") : <a> 요소를 모두 선택
doc.select("#logo") : id="logo" 인 요소를 선택
doc.select(".list") : class="list"인 요소들을 선택
결과 화면
'Programming > Spring' 카테고리의 다른 글
[Spring] XML Mapper로 DB에서 정보 조회하는 기능 구현 (Controller, DAO, DTO, Service, Mybatis) (0) | 2021.03.02 |
---|---|
[Spring] Spring Framework MVC - Controller, Service, DTO(=VO), DAO (0) | 2021.02.23 |
[Spring] STS에 Lombok 설치하기 (0) | 2021.02.23 |
[Spring] 스프링으로 게시판 만들기 (2) | 2021.02.22 |
[Spring] 맥(Mac)에 STS(Spring Tool Suite) 설치하기 (0) | 2021.02.22 |
댓글