2020. 5. 19. 16:16ㆍ데이터 분석/R
앞서
https://hyebit.tistory.com/15?category=903232
1-1. 웹크롤링 준비하기
우선 저는 R selenium 패키지를 이용하였습니다. 제 주위 사람들 중에서 chromedriver만 설치하여도 가능한 사람이 있었고, 그렇게 하면 작동이 되지 않는 사람이 있었는데요. 저는 후자 여서 r selenium �
hyebit.tistory.com
에서 설정한 것처럼 cmd로 port번호를 실행해 주고
R-studio를 열어 줍니다.
library(RSelenium)
library(seleniumPipes)
library(rvest)
library(httr)
library(stringr)
이렇게 필요한 패키지 들을 불러옵니다.
https://www.melon.com/chart/age/index.htm
Melon
음악이 필요한 순간, 멜론
www.melon.com
위의 링크를 통해 들어가 보면 제가 크롤링 해 올 시대별 차트를 볼 수 있습니다.
그중에서 저는 1970년부터 2000년도까지 10년씩 증가하는 주소를 만들려고 합니다.
사이트에서 본 주소를 이용하여 paste0로 주소를 만들어 줍니다.
# 시대별 국내 국외 차트를 들고오기 위한 주소 만들기
```{r}
year = c(1970, 1970, 1980, 1980, 1990, 1990, 2000, 2000)
genre = c("KPOP", "POP")
url0 = paste0("https://www.melon.com/chart/age/index.htm?chartType=AG&chartGenre=", genre)
url0
```
Url1 = paste0(url0, "&chartDate=")
Url1
url = paste0(Url1, year)
url
이렇게 모두 만든 뒤 결과를 확인해 보면
제가 원하는 대로 코드가 만들어진 것을 확인해 볼 수 있었습니다.
이제 주소가 만들어 졌으니 크롬 창을 만들어 보도록 하겠습니당!!
# cmd에서 설정한 port를 이용해 크롬 창 만들기
ch=wdman::chrome(port=9515L)
remDr = remoteDriver(
remoteServerAddr="localhost",
port=9515L,
browserName="chrome")
remDr$open()
위의 코드를 입력하고 실행하였을 때,
이런 식으로 결과가 나오면 성공한 것입니다!!
주소도 만들었고, 크롬 창도 만들었으니, 이제 xpath만 알면 크롤링을 해 올 수 있습니다.
이런 식으로 자신의 크롬에서 원하는 주소로 들어가
F12를 누른 후 자신이 크롤링하고 싶은 부분의 class와 xpath를 확인할 수 있었습니다.
그리고 저는 이 사이트에서 보이는 것뿐만 아니라
더불어서 노래들의 가사와 장르도 크롤링해 올 것이기 때문에
주소를 확인해 보면 songId에 따라
각 노래들의 곡정보 창으로 이동하는 것을 알 수 있었습니다.
그래서 저는 songId 도 크롤링했습니다!!
위 사진을 자세히 보면 F12 창에
a href......... class="btn btn_icon_detail" onclick="melon.link.goSongDetail('2228298');"
이렇게 나오는 것을 볼 수 있습니다.
그래서
melon.link.goSongDetail('2228298'); 이 부분 전체를 들고 와
숫자만 빼서 songid로 저장하기로 했습니다.
Melon이라는 데이터 프레임을 만들기 위해
우선
Melon = NULL
이렇게 설정해 줍니다.
for 문을 이용해 연도와 국가별로 계속해서 반복하여 시행하도록 설정해 줬습니다.
자료를 들고 오면 특수문자들이 붙어 있는 것을 확인할 수 있을 겁니다.
그럴 때는 stringr 패키지를 활용해 str_replace_all로 제거하고 싶은 특수문자들을 제거해 줍니다.
str_sub 함수를 활용하면 원하는 단어만 추출할 수 있습니다.
그다음 국내 노래인지 해외 노래인지 구분을 하기 위해 직접 설정해 주고,
위에서 만든 데이터 프레임에 붙여 주었습니다.
연도는 장르나 가사와 같이 크롤링해 와도 가능하지만,
몇 년대 인기차트에 올라온 노래인지 구분하려니
발매된 연도와 인기차트에 올라온 연도와 다른 경우가 많아
그냥 위에서 주소 만들 때 사용한 year을 통해 직접 만들어서
Melon 데이터 프레임 안에 넣어 줬습니다.
그다음 Melon데이터 프레임 안에 있는 Url을 통해 가사와 장르를 크롤링해 올 건데요,
크롤링 해 오기 전에 is.na함수를 활용하여 결측 값을 확인하고
na.omit 함수를 활용하여 결측 값을 제거해 줍니다.
위에서 한 것과 같이 크롬 창을 만들어 장르와 가사를 들고 와
Melon 데이터 프레임 안에 저장해 줍니다.
드디어 Melon 데이터 프레임이 완성되었습니다!!!!!
이 작업을 계속해서 반복하여 시행을 하면 시간이 많이 걸리기 때문에
분석을 할 때 좀 더 수월하게 진행할 수 있도록 csv파일로 만들어 줍니다.
# Melon csv 파일 만들기
write.csv(Melon, "Melon.csv")
이렇게 하면 이제 아래와 같이 Melon.csv파일을 만들 수 있습니다.
오늘은 여기까지 하겠습니다~!!
읽어주셔서 감사합니다^^
'데이터 분석 > R' 카테고리의 다른 글
2-2. 장소어휘 사전 분석 & 시각화 (0) | 2020.07.29 |
---|---|
2-1. 데이터 수집 & 정리 (0) | 2020.07.29 |
2. 1960년대 부터 2010년대 까지 대중가요 가사 속 장소 어휘 분석 (0) | 2020.07.29 |
1-1. 웹크롤링 준비하기 (0) | 2020.05.12 |
1. 멜론 시대별 차트를 크롤링 하여 가사에 사용하는 단어 알아보기! (0) | 2020.05.11 |