골드

타임라인 데이터 수집

라이엇 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)

 

댓글

댓글 본문