본문 바로가기

R 크롤링

[R] 디아블로3 API를 활용하여 직업별 상위 랭킹 세팅 분포 구하기 두번째날

반응형

##작성자: 춤추는초코칩

##작성일: 2018-03-12

##작성내용: 바바리안 랭커 배틀태그, 히어로아이디 수집하기


두번째날인데... 첫번째날이 지나고 한참되었네요. ^^;;

오늘 할일은 시즌 대균열 상위 랭커들의 배틀태그(Battletag)랑 영웅의 ID를 가지고 오는 작업입니다.

배틀태그와 ID정보가 있으면, 해당 캐릭터가 가지고 있는 아이템 정보를 api를 통해 가지고 올 수 있습니다.

디아블로3 웹페이지에서 스크래핑 해 보겠습니다.


필요한 패키지는 "rvest"입니다.

library(rvest)


디아블로3 공식 홈페이지에서 대균열 순위가나오는 홈페이지 주소를 가지고 옵니다.

배틀태그와 ID는 하이퍼링크 주소에 나와 있습니다. "battletag" 클래스에 "href" 주소를 가지고 오면 될거 같습니다.

##Diablo3 Barbarian Ranking Page

rank <- ("https://kr.diablo3.com/ko/rankings/era/10/rift-barbarian")

rank_html <- read_html(rank)

rank_html <- html_nodes(rank_html,'.battletag')

rank_href <- html_nodes(rank_html, 'a') %>% html_attr('href')

rank_href[1:10]


그 다음에 strsplit()함수를 사용해서 "/"를 구분자로 텍스트를 분리한 후, battletag와 id를 rank_battletag, rank_hero에 각각 저장합니다.

##Make two vectors about Battletag & HeroId

rank_battletag <- matrix(unlist(strsplit(rank_href,"/")),ncol=1000)[4,]

rank_hero <- matrix(unlist(strsplit(rank_href,"/")),ncol=1000)[6,]

rank_battletag[1:10]

rank_hero[1:10]

##Merge two vectors

ranker <- cbind(rank_battletag,rank_hero)

ranker[1:10,]


오늘은 대균열 상위 랭커의 배틀태그와 영웅의 ID를 스크랩했습니다.

다음시간에는 이를 이용하여 랭커들의 아이템 정보를 수집하겠습니다.

반응형