메모장

[실습 문제] 지니뮤직 웹크롤링 해보기 ! 본문

JAVA/[실습문제]

[실습 문제] 지니뮤직 웹크롤링 해보기 !

Itchild 2024. 4. 8. 17:42
728x90
반응형

 

1. 스크랩핑

인터넷상에 존재하는 데이터를

프로그램을 이용해서 자동화된 방법으로

수집하는 작업

2. 크롤링

수집한 데이터들을 분류해서

별도로 저장하는 작업

3. 유효한 정보로 '가공'

파싱 -> 가공하는 작업을

유효한 정보로 '가공'하는 작업

데이터를 이용할 형식에 맞게 추출하여

의미있는 값으로 변형하는 작업

(내가 쓰려는 정보로 다듬는 작업이다)

=> 크롤링 (수집해서 분류하고 가공한다 까지가 크롤링이다.)

이걸 웹상에서 크롤링 한다. 웹 크롤링

 

이 순서대로 진행한다 !


  1. 지니뮤직 사이트에 접속하여 스크랩 하고 싶은 내용을 찾는다 !

 

 

 

 

2. F12 번을 눌러서 지니뮤직의 코드를 살펴본다 ! (지니뮤직 실시간 TOP200의 페이지 )

 

 

1) 노래 제목의 코드는 어떤 구조로 짜여져 있는지 살펴 보자

2) 가수 이름의 코드는 어떻게 짜여져 있는지 살펴보자

3. 자바로 스크랩핑을 한다 !

 


그 전에 !!!

 

jsoup-1.16.1.jar 파일을 다운로드 받는다 .

자바 설치 순서 : 프로젝트 우클릭 -> 맨 밑에 Properties 클릭 후 1,2,3,4,5

 

설치를 마치고 나면 ...!


 

  1. 웹 페이지 코드 java로 가져오기

2. 스크랩핑 하기

3. 페이지 코드 분석하기

4. 추출 완료한 데이터를 contsole 화면에 출력

5. 데이터 가공하기

 

여기서 잠깐 ! 지니뮤직은 1~5위는 상위에 언급하고 있다 . 따라서 중복으로 결과 값이 나타난다.

그것에 따른 중복 결과 (console)

그래서 조건문을 붙여 보았다 !


결과는 ??? 

실시간 차트 스크랩 성공

 

- 웹크롤링 실습중 만났던 에러

가수와 제목 두 가지를 스크랩하면서 각각의 크기가 다를수 있는데 내가 적게 가지고 있는데 더 많은것을 출력해달라고 할때 찾을수 있는게 없어서 일어나는 No SuchElementException 이다

두 변수의 크기를 어떻게 비교 해야 하는가

c1,c2의 변수를 설정후 각각 반복문 후 크기를 측정 String itr 변수가 좀더 작으므로 itr.hasNext()를 돌리면 예외가 발생하지 않는다 . 예외 처리에는 다양한 방법이 있다 . &&로 itr.hasNext() &&itr2.hasNext() 서로 묶어도 되고 try-catch로 예외처리를 해주는 방법도 있다 !

 

 

 

728x90
반응형