취미코딩

취미로 즐기는 코딩!

코스 전체목록

닫기

타임라인 데이터 수집

라이엇 API에서는 게임 데이터를 제공할뿐 아니라 타임라인 데이터도 제공합니다. 
타임라인 데이터는 게임이 진행되는 중간에 수집한 정보입니다. 
 
롤의 경우 경기가 시작되고 나서 1분(60000 밀리세컨드) 단위로 데이터를 제공합니다. 
각 시점에 사용자별로 챔피언 레벨, 미니언 킬, 위치, 아이템 구입 내역 등 상세한 정보를 알 수 있습니다.
 
경기 중간에 실시간으로 파악하는 통계(타임라인 데이터)라서, 경기가 끝난 시점에 파악하는 경기 전체 통계(게임 데이터)로 얻을 수 없는 정보가 포함돼 있습니다. 예를 들어 사용자가 경기 중간에 아이템을 사고 팔면서 빌드 업을 해나가는 과정은 타임라인 데이터를 통해서만 파악할 수 있습니다.   
 
타임라인 데이터는 라이엇 개발자 페이지 MATCH-V5 세 번째 줄에서 얻을 수 있습니다.
/lol/match/v5/matches/{matchId}/timeline
 
 
API 사용 방법은 게임 데이터 수집 방식과 유사합니다. 
연습삼아 페이커 선수의 match id를 이용해서 타임라인 데이터를 수집해봅시다. 
"KR_6064073180"
 

코드

import requests
import pickle

api_key = "본인의 API KEY를 입력하세요"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
    "Accept-Language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7",
    "Accept-Charset": "application/x-www-form-urlencoded; charset=UTF-8",
    "Origin": "https://developer.riotgames.com",
    "X-Riot-Token": api_key
}

matchid_list = [
    "KR_6064073180",
    "KR_6063075412",
    "KR_6062986134",
    "KR_6063004225",
    "KR_6062981865",
    "KR_6062848010",
    "KR_6062875092",
    "KR_6062871162",
    "KR_6061081047",
    "KR_6060968162"
]

for matchid in matchid_list:
    url = f"https://asia.api.riotgames.com/lol/match/v5/matches/{matchid}/timeline"
    data = requests.get(url, headers=headers).json()
    print(data)
    path = f"faker_timeline/{matchid}.pickle"
    with open(path, "wb") as f:
        pickle.dump(data, f)

 

댓글

댓글 본문
버전 관리
과동티모
현재 버전
선택 버전
graphittie 자세히 보기