LOL 밴픽 페이지를 구현하기 위해 필요한 정보로는 모든 챔피언의 이름과 이미지가 있다.
단순 검색을 통해서 챔피언들의 이름을 구할 수 있지만, Riot API를 활용하는 것이 목표였기에, Riot API에서 JSON으로 주어진 데이터들에서 챔피언 이름과 이미지들을 파싱하는 것을 진행해보았다.
League of Legends Docs를 보면 Champions 부분이 있다. 여기에 JSON파일을 확인할 수 있다.
위의 사진의 URL 클릭해서 들어가면
이런 JSON 파일을 확인할 수 있다.
import requests
# get Json File
datas = requests.get('https://ddragon.leagueoflegends.com/cdn/12.6.1/data/ko_KR/champion.json')
datas = datas.json()
JSON 데이터의 구조는 아래와 같다.
챔피언 이름만 필요하기 때문에 해당 JSON 파일에서 data라는 key의 value들을 가져온다.
import requests
champion = []
# get Json File
datas = requests.get('https://ddragon.leagueoflegends.com/cdn/12.6.1/data/ko_KR/champion.json')
datas = datas.json()
# champion Name parsing
for data in datas["data"]:
champion.append(data)
챔피언 이미지 역시 League of Legends Docs에서 찾아볼 수 있다.
위의 이미지에서 보이는 URL들을 클릭해보면 관련 챔피언의 이미지를 확인할 수 있다.
밴픽에서 필요한 것은 사각형의 챔피언 이미지이므로 Champion Square Assets의 URL을 통해 이미지를 다운받아야 한다.
이 때 파일명이 챔피언 이름 + .png 확장자이므로, 위의 파싱한 챔피언 이름 배열을 이용해서 진행하면 된다.
python의 requests 모듈을 이용하여 구현한다.
import requests
champion = []
# get Json File
datas = requests.get('https://ddragon.leagueoflegends.com/cdn/12.6.1/data/ko_KR/champion.json')
datas = datas.json()
# champion Name parsing
for data in datas["data"]:
champion.append(data)
for champ in champion:
save_path = "D:\Web\lol_banpick\championImage\ " + champ + ".png"
image_url = "http://ddragon.leagueoflegends.com/cdn/12.7.1/img/champion/" + champ + ".png"
download_image = requests.get(image_url)
with open(save_path, 'wb') as file:
file.write(download_image.content)