Riot API 사용해보기

star-planet·2024년 8월 30일
0
post-thumbnail

국비과정을 진행하며 온라인 게임 승률 향상을 위한 분석이라는 주제로 프로젝트를 진행하게 되었다.

리그 오브 레전드(League of Legends)로 게임을 선정하면서 데이터 수집이 필요하였고,
라이엇 게임즈(Riot Games)에서 제공하는 API를 사용하기로 하였다.

API KEY

https://developer.riotgames.com/
라이엇 개발자 페이지에서 로그인을 하면 키를 발급받을 수 있다.

API

만료 기한

발급된 키는 만료 기한이 있고 만료되면 재발급을 받아서 사용해야 한다.

속도 제한

1초에 20회, 2분에 100회의 속도 제한이 걸려있으므로 유의한다.

수집 과정

다음과 같은 단계를 거쳐서 데이터를 수집한다.

우선 필요한 정보를 설정해둔 뒤,

수집할 티어를 설정해서 리그별 소환사 목록을 가져온다.

리그별 소환사 목록에서 소환사 정보를 가져온다.

소환사 정보에서 매치 목록을 가져온다.
파라미터를 활용해서 시작 날짜, 마지막 날짜, 유형, 시작 번호, 개수를 지정해 주었다.

매치 목록에서 매치 데이터를 가져온다.

수집 중 발생한 문제

2분에 100회면 120초에 100회 -> 1.2초에 1회,
다시 말해 1회당 최소 1.2초의 딜레이가 필요하다.

처음에는 time.sleep() 함수를 이용해서 1.2초의 딜레이로 데이터를 수집하였는데,
수집 도중 너무 많은 요청이 들어왔다는 문구와 함께 API 요청이 막히는 문제가 발생하였다.

time.sleep()에 오차가 있을 수 있다고 생각하여 python 공식문서에서 time.sleep()함수에 대해 찾아보았다.

간단히 요약하자면 지정한 시간보다 짧아지거나 길어질 수 있다 라는 내용이였고,
시간에 영향을 끼치는 요인 중 하나가 사용하는 운영체제라는 것을 알 수 있었다.

필자는 Ubuntu 22.04 를 사용하고 있었고, 1.3초의 딜레이를 주어서 데이터를 수집하였더니 문제없이 데이터를 수집할 수 있었다.

0개의 댓글

관련 채용 정보