웹 스크래핑이란?
--> 웹 문서로부터 유용한 정보를 추출하는 기술이다.
예제를 통해서 익혀보자.
library(XML)
library(RCurl)
스크래핑을 하기 위해서는 XML , RCurl 라이브러리가 설치되어 있어야 한다.
첫 번째로는 내가 검색을 할때 , 한국어로 할지 , 또는 영어로 검색을 할지 정해야 한다.
영문으로 할때와 한국어로 할때 두가지 경우만 보겠다.
query <- URLencode(iconv("westlife","euc-kr","UTF-8"))
# 검색키워드 인코딩 , 영문으로 할 때
query <- URLencode(iconv("가지마","euc-kr","UTF-8"))
# 검색키워드 인코딩 , 한국어로 할 때
두 번째로는 내가 어떤 사이트에서 스크래핑을 할지 정해야 한다.
나는 유투브로 스크래핑 해보겠다.
paste라는 함수를 사용하여서 접근할 수 있으며 , 변수로써 위에서 검색키워드를 설정해준 변수를 삽입해 준다
url <- paste("https://www.youtube.com/results?q=",query,sep = "")
# 검색 URL
세 번째로는 paste해준 변수를 getURL함으로써 가져온다.
doc <-getURL(url)
#검색 페이지 다운로드
네 번째로는 다운받은 검색 페이지를 html형식으로 변환을 한다.
html <- htmlParse(doc, encoding = "UTF-8")
# html 문서로 변환
다 섯번째로는 html로 변환시킨 파일에서 내가 가져오고자 하는 것에 접근을 해야하는데,
h3태그로 이루어진 class = 제목 , 즉 제목에 접근을 한다.
title <- xpathSApply(html, "//h3[@class='yt-lockup-title ']/a",xmlValue)
다음은 R에서 실행한 결과값이다.
한글일 경우
[1] "[자막]KK - 가지마"
[2] "가지마 / 진성 [2017 신곡 / 금영 76236]"
[3] "시원시원한 목소리의 최우수상 수상자 - 조승희 ( 가지마 - 진성 ) KBS 전국노래자랑 1891회 전남 담양편 편집본"
[4] "가지마 가지마 - Brown Eyes"
[5] "진성 - 가지마"
[6] "진성 가지마"
[7] "진성 - 가지마 노래강의 / 강사 이호섭"
[8] "임세준 Im SeJun - 오늘은 가지마 Don't Go Today"
[9] "[AUDIO] Monday Kiz - 가지마 (Don't Go) from 4집 ru:t;"
[10] "[듀엣] 마후마후 x 소라루 - 가지마"
[11] "최신 트로트 가요 [ Korea Trot Best Kayo ] ★ 차은성(임수빈) ☆ 가지마"
[12] "임영웅 Cover 가지마 (진성)"
[13] "[볼륨 up] KK-그게 당신의 행복일지라도 HD 자막,발음"
[14] "[이어폰필수] KK-결벽증 자막,발음ver"
[15] "KK - 오렌지 Orange [オレンジ] [자막/발음] 720p - Kimeolbin"
[16] "관련 재생목록 - [자막]KK - 가지마"
[17] "[언더테일]가지마"
[18] "\U0001f54a버드리--(진성~가지마)\U0001f3b5--분위기 달굴때 많이 부르는 최신곡\U0001f3b6"
[19] "진성 가지마 가수 이수진 가지마"
[20] "제9회 청소년 트로트 가요제 남승민 가지마"
영문일 경우
[1] "ATEEZ(에이티즈) - Treasure MV"
[2] "Westlife Love Songs Full Album 2018 - Westlife Best Of - Westlife Greatest Hits Playlist New 2018"
[3] "The Best of Westlife - Westlife Greatest Hits (Full Album)"
[4] "Westlife - best songs"
[5] "Westlife - My Love (Official Video)"
[6] "Westlife - Uptown Girl (Official Video)"
[7] "The Best of Westlife - Westlife1 Greatest Hits Full Album (HQ)"
[8] "Westlife - Beautiful in White"
[9] "Best songs of Westlife - The greatest hits"
[10] "westlife"
[11] "Westlife - You Raise Me Up (Official Video)"
[12] "Westlife Top 20 Best Love Songs / Westlife Greatest Hits / Westlife Best Of"
[13] "Westlife - My Love (Coast to Coast)"
[14] "Westlife - Mandy (Official Video)"
[15] "Best song of Weslife - Những bài hát hay nhất của westlife"
[16] "Best Love Songs 70's 80's 90's Playlist - Romantic Love Songs Ever - Greatest Love Songs Of All Time"
[17] "[Ed Sheeran] 2018인기 팝송 모음 베스트 20곡ㅣBest Popular Songs Of 2018 | 빌보드 히트 팝송ㅣ광고 없는 팝송"
[18] "Westlife Love Songs Full Album 2018 - Westlife Best Of - Westlife Greatest Hits Playlist New 2018"
[19] "Westlife - If I Let You Go (Official Video)"
[20] "WESTLIFE Greatest Hits - 30 Best Songs Of WESTLIFE By YLDZ"
[21] "Best Songs of Westlife Westlife Greatest Hits Full Album 2018 (HQ)"
실제로 유투브에서 내가 키워드로 해준 값으로 검색을 했을 때 , 결과값이 똑같을까??
다음은 유투브에서 키워드로 검색해본 결과들이다 .
광고를 제외하면 같은 결과값을 가져온다는 것을 알 수 있다.
하지만 이 방법의 한계점은 모든 데이터를 가져오지는 못한다.
'학부공부 > 데이터마이닝과통계' 카테고리의 다른 글
나이키 사이트 크롤링 (0) | 2018.11.10 |
---|---|
쿠팡 웹 크롤링 맛보기 (2) | 2018.11.01 |
기간환율변동 데이터 분석하기 (0) | 2018.10.25 |
CA-HepTh.txt ( 고에너지 물리학 - 현상학 ) 분석하기 (0) | 2018.10.05 |
천체 물리학 협업 네트워크를 다뤄보자. (0) | 2018.10.03 |
#IT #먹방 #전자기기 #일상
#개발 #일상