Data Analysis/League of Legends
-
천상계 게임 정보 크롤링Data Analysis/League of Legends 2020. 5. 27. 00:32
반갑습니다! 지금까지 모든 내용을 따라오셨다면 이제 천상계(마스터 이상) 게임 정보를 크롤링할 수 있습니다. 천상계의 랭크는 매일 오후 11시 45분에 갱신되는데요, 마스터/그랜드마스터와 그랜드마스터/챌린져의 승급과 강등이 이루어집니다. 그렇다면 매일 자정에 마스터 이상 유저 정보를 수집해서 그 전날 하루동안 있었던 게임을 모두 가져오는 작업을 매일 반복하도록 해볼까요? 이를 쉽게 하기 위해서 Python의 schedule 모듈을 사용합시다. 설치되어있지 않다면 pip를 통해 설치합니다. 해당 모듈을 사용하면 아주 쉽게 반복 작업을 설정할 수 있습니다. LolMaster 폴더의 상위 폴더에 crawling.py를 만들어 볼까요? from LolMaster import league, summoner, ma..
-
Riot API - MatchData Analysis/League of Legends 2020. 5. 27. 00:19
지금까지 우리의 최종 목표는 최상위 유저들의 게임 기록을 크롤링(crawling)하는 것입니다. 그런데 라이엇은 이러한 기능을 직접적으로 제공하지 않습니다. 최상위 유저들의 게임 기록을 가져오기 위해 우리는 1) 최상위 리그 (마스터, 그랜드마스터, 챌린져)의 리그 정보 중 소환사 ID 수집 2) 소환사 ID를 통해 계정 ID 수집 3) 계정 ID를 통해 각 소환사의 최근 매치 ID 수집 4) 최근 매치 ID를 통해 최근 매치 정보 수집 의 4단계를 거쳐야 합니다. 위에서 설명한 3번과 4번 과정을 진행해봅시다. LolMaster 폴더 안에 match.py를 생성합니다. 먼저, 계정 ID를 이용해 최근 match list를 가져옵시다. 해당 API document는 다음과 같습니다. https://dev..
-
Riot API - SummonerData Analysis/League of Legends 2020. 5. 26. 23:55
지금까지 우리의 최종 목표는 최상위 유저들의 게임 기록을 크롤링(crawling)하는 것입니다. 그런데 라이엇은 이러한 기능을 직접적으로 제공하지 않습니다. 최상위 유저들의 게임 기록을 가져오기 위해 우리는 1) 최상위 리그 (마스터, 그랜드마스터, 챌린져)의 리그 정보 중 소환사 ID 수집 2) 소환사 ID를 통해 계정 ID 수집 3) 계정 ID를 통해 각 소환사의 최근 매치 ID 수집 4) 최근 매치 ID를 통해 최근 매치 정보 수집 의 4단계를 거쳐야 합니다. 오늘은 소환사 ID를 통해 계정 ID를 수집해 봅시다. LolMaster 폴더 안에 summoner.py를 작성합니다. 소환사 ID는 이전 글의 League API를 통해 수집할 수 있습니다. 수집한 데이터를 Pandas DataFrame형식..
-
Riot API - LeagueData Analysis/League of Legends 2020. 5. 20. 18:24
지금까지 우리의 최종 목표는 최상위 유저들의 게임 기록을 크롤링(crawling)하는 것입니다. 그런데 라이엇은 이러한 기능을 직접적으로 제공하지 않습니다. 최상위 유저들의 게임 기록을 가져오기 위해 우리는 1) 최상위 리그 (마스터, 그랜드마스터, 챌린져)의 리그 정보 중 소환사 ID 수집 2) 소환사 ID를 통해 계정 ID 수집 3) 계정 ID를 통해 각 소환사의 최근 매치 ID 수집 4) 최근 매치 ID를 통해 최근 매치 정보 수집 의 4단계를 거쳐야 합니다. 오늘은 Riot API를 이용하여 랭크 게임의 리그 정보를 가져오겠습니다. LolMaster의 최신 버전 코드 항상 https://github.com/terry00123/LolMaster/blob/master/LolMaster/league.p..
-
Riot API - Configuration, Request & Exception Handler, Error ModuleData Analysis/League of Legends 2020. 5. 20. 18:11
좋은 프로그래머라면 예외 처리를 고려하면서 프로그램을 짜야 합니다. 이에 development API key를 가지고 본격적으로 API를 사용해보기 전에, Riot API를 사용(request)하고 데이터를 얻는 모듈을 짜면서, 그 안에서 예외 처리(exception handling)를 해봅시다. 또한, 이를 위해 지역(region)과 API key를 세팅하는 configuration 모듈도 짜야겠죠. 모든 코드는 Python 3.6이상을 대상으로 합니다. HTTP 형식의 GET, PUT, UPDATE, DELETE 네 종류의 명령어를 이용하는 API를 REST API라고 하는데요, Riot API도 이러한 REST API에 해당합니다. 또한, 대부분의 API는 GET 명령어를 사용하죠. 다음 API는 ..
-
Riot API - Environment SettingData Analysis/League of Legends 2020. 5. 20. 17:57
Riot API를 본격적으로 이용하기 위해 Python 환경을 세팅합니다. 먼저, Python을 3.5버전 이상으로 설치합니다. 각자 OS에 맞게 최신 버전의 Python을 설치하는 것을 추천합니다. Virtual environment로 가상 Python 환경을 만드는 것을 추천합니다. 참고 링크: https://dgkim5360.tistory.com/entry/python-virtualenv-on-linux-ubuntu-and-windows 마지막으로 다음 dependencies를 설치합니다. pip install pandas schedule requests 만약 가상 환경을 쓰지 않는다면, default pip는 Python 2 전용일 것입니다. 따라서 pip대신 pip3 명령어로 설치합니다. 최상위..
-
Riot API - BasicData Analysis/League of Legends 2020. 5. 19. 01:53
롤(League of Legends)을 운영하는 Riot Games는 그들의 데이터를 Open API로써 공개하고 있습니다. API란, Application Programmer's Interface의 약어로, 프로그래머들이 보다 쉽게 프로그래밍할 수 있도록 제공되는 추상화된 코드입니다. https://developer.riotgames.com/ 누구나 Riot 계정이 있다면 API를 이용해볼 수 있습니다. 위 사이트에서 Riot 계정으로 로그인하면 development API key를 확인할 수 있습니다. 여기서 주어진 development API key가 있어야지만 Riot API를 이용할 수 있습니다. 다만 해당 key는 단순 개발용(=테스트용)이기 때문에 API key의 expire date가 굉장..
-
Before we startData Analysis/League of Legends 2020. 5. 19. 01:27
안녕하세요, 저는 평소 롤을 즐겨하고 프로 경기를 자주 시청하곤 합니다. 평소 프로 경기를 보며 각 프로 팀의 전력분석관은 어떤 일을 하는지, 데이터 분석은 어떻게 진행하는지 궁금하였지만 명확한 답을 얻을 수 없었습니다. 이에 일종의 취미(?)로 앞으로 여가시간동안 조금씩 롤에 대한 데이터 분석을 해보고자 합니다. 지금으로써는 어떠한 계획도 없고, 목표도 없지만, 현재 SKT T1의 전력분석팀장 Tolki(트위터)님을 롤 모델로 삼아 성장하고자 합니다. 이 카테고리는 일종의 일기장 느낌으로, 제가 틈틈히 공부한 것들을 정리하고자 올리는 것이기에 독자를 따로 설정하지 않습니다. 이에 읽는 데 불편하시더라도 양해부탁드립니다. 모든 문의사항은 제 이메일(terry00123@kaist.ac.kr)로 주시면 감사..