분석하고싶은코코

Riot API 사용 간단 정리 본문

Python/크롤링

Riot API 사용 간단 정리

코코로코코 2023. 2. 16. 22:33
반응형

Riot과 관련된 게임과 정보들을 받아올 수 있다. (LoL, TFT, 발로란트) Riot API로 내가 원하는 정보를 한 번에 쏙 뽑아올 수 없는 구조다. 물론 계정에 대한 기본정보만 필요하다면 그럴 수 있지만 계정에 대한 정보와 그 계정이 플레이한 게임의 정보를 알고 싶다면 여러 API를 거쳐야한다. 그 방법을 간단한 예시와 함께 정리해본다. https://developer.riotgames.com/

 

Riot Developer Portal

About the Riot Games API With this site we hope to provide the League of Legends developer community with access to game data in a secure and reliable way. This is just part of our ongoing effort to respond to players' and developers' requests for data and

developer.riotgames.com

 

위 사이트에 접속하여 본인 라이엇 계정으로 로그인 하여 API key를 발급 받는다.

!! 이 API key는 발급 후 24시간만 사용이 가능하므로 지속적으로 정보를 받아와야 한다면 이 키를 계속 발급받아야한다.

(개인이면 그런데 기업이면 다른가...? 이건 모름...)

 

그리고 주의 사항이 하나 더 있는데 Riot API는 1초에 20번, 2분에 100번으로 요청이 제한된다. 많은 요청을 불러와야할 작업이라면 이 부분을 고려하여 작업 진행해야함.

 

이후 상단에 APIS 탭을 누르면 사용할 수 있는 API들이 나온다. 사람마다 원하는 정보가 다르기 때문에 각 요청 API들을 읽어보고 꼬리에 꼬리를 물어가 보시길...

 

이제 실전으로 간단한 예시로 글 마무리!! 유저를 특정짓고 그 유저의 TFT게임 정보를 가져와보자.

 

코드


URL Header 설정

import requests
from urllib import parse

# API 1일마다 갱신 필요
api_key = 'RGAPI-0ce47af7-a7cf-482a-b66d-f46d3a14b2a0' 
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36",
    "X-Riot-Token": api_key
}

 

TFT 소환사 정보 가져오기 (닉네임으로 정보 가져오기)

def tft_summoner_info_summonerName(summonerName): #닉네임으로 탐색
    encodingName = parse.quote(summonerName)
    url = f'https://kr.api.riotgames.com/tft/summoner/v1/summoners/by-name/{encodingName}'
    return requests.get(url, headers=headers)

 

결과 (페이커 선수의 hide on bush 아이디 정보 가져오기)

 

 

이제 가져온 소환사의 puuid로 최근 게임의 id 가져오기(api 기본 설정이 20개)

(게임 id를 가져오는 방법은 소환사 계정의 puuid로만 가능!)

def tft_match_ids(puuid, count=20):
    url = f'https://asia.api.riotgames.com/tft/match/v1/matches/by-puuid/{puuid}/ids?count={count}'
    return requests.get(url, headers=headers)

 

 

결과

 

 

가져온 게임 id로 게임 정보 가져오기

def tft_get_Game_info(matchId):
    url = f'https://asia.api.riotgames.com/tft/match/v1/matches/{matchId}'
    return requests.get(url, headers=headers)

 

결과 (1개의 게임정보만 가져옴)

이렇게 하면 게임 하나에 대한 정보를 가져온것!

 

이제 이 정보에 무엇이 들어가 있는가는...!! 포스팅하기에는 너무 많은 정보들이 있다. Riot API에 자세하게 나와있으니 알아서 살펴보기!!

 

 

반응형