12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import requests
- import os
- '''
- @Contact : liuyuqi.gov@msn.cn
- @Time : 2022/03/08 21:12:55
- @License : Copyright © 2017-2020 liuyuqi. All Rights Reserved.
- @Desc :
- # 2. 编写一个工具(LOL皮肤下载工具) ----封装的思想
- # 给用户展示所有的英雄名称和id (在控制台输出 所有英雄的名称和id 每三个为一行)
- # 用户输入想要的英雄皮肤 (用户输入所需要的英雄id)
- # 如果有,则进行下载, 判断id是否在英雄id列表中存在
- # 如果没有让用户从新输入 y 继续数据皮肤信息 n 输出程序结束
- '''
- hero_list_url = "https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js"
- s = requests.Session()
- hero_id_list = []
- def getHeroId():
- global hero_id_list
- response = s.get(hero_list_url).json()
- hero_list = response["hero"]
- print("-----------所有英雄id和名字--------------------")
- input("按任意键继续")
- index = 1
- tmp = ""
- for hero in hero_list:
- tmp = tmp + hero["heroId"] + " " + hero["name"] + " "
- if index % 3 == 0:
- print(tmp)
- tmp = ""
- hero_id_list.append(hero["heroId"])
- index = index + 1
- def getHeroPic():
- while(1):
- mHeroId = input("用户输入所需要的英雄id:")
- # 获取所有英雄图片的地址
- for hero_id in hero_id_list:
- if mHeroId == hero_id:
- hero_img_url = "https://game.gtimg.cn/images/lol/act/img/js/hero/%s.js" % (
- hero_id)
- skin_list = s.get(hero_img_url).json()["skins"]
- for skin in skin_list:
- mainImg = skin["mainImg"]
- heroName = skin["heroName"]
- name = skin["name"]
- if not os.path.exists(heroName):
- os.mkdir(heroName)
- if mainImg == "":
- with open(heroName + "/" + name + ".jpg", "wb") as file:
- file.write(s.get(skin["chromaImg"]).content)
- else:
- with open(heroName + "/" + name + ".jpg", "wb") as file:
- file.write(s.get(skin["mainImg"]).content)
- print("下载结束,头像保存至当前目录\r\n\r\n")
- yn = input("y 继续 n 输出程序结束:")
- if yn == "n":
- exit()
- def getHero():
- getHeroId()
- getHeroPic()
- if __name__ == '__main__':
- getHero()
|