(五)Python—lol根据用户输入下载皮肤

(五)Python—lol根据用户输入下载皮肤

import requests
import os
import urllib.request #爬虫库,这里只用他的下载方法

#返回所有英雄id,打印出所有英雄的名字和id
def getHeroIdList():
    heroList = requests.get(herolist_url).json()['hero']
    i = 0
    for hero in heroList:
        #添加英雄id
        heroIdList.append(hero['heroId'])
        print(hero['heroId'],hero['name'],end='\t\t')
        i+=1
        if i==4:
            print()#换行
            i=0
#根据文件下载皮肤
def downloadSkin():
    #1. 获取用户键盘输入的内容
    inputId = input("请输入要下载的英雄id: ")
    #2. 首先判断输入id是否存在   in:在什么里面
    if inputId in heroIdList:
        #3. 向英雄详情发请求,获取英雄所有皮肤
        skinList = requests.get(heroinfo_url.format(inputId)).json()['skins']
        for skin in skinList:
            #4. 创建英雄名称的文件夹
            if not os.path.exists(skin['heroName']):
                os.mkdir(skin['heroName'])
            #5. 判断是不是炫彩皮肤
            if skin['mainImg']!='':
                urllib.request.urlretrieve(skin['mainImg'],"{}/{}.jpg".format(skin['heroName'],skin["name"].replace("/","")))
            else:
                urllib.request.urlretrieve(skin['chromaImg'], "{}/{}.jpg".format(skin['heroName'], skin["name"].replace("/","")))
            print("{}的{}皮肤下载完成".format(skin['heroName'],skin['name']))
    else:
        print("您输入的id不存在")

#做个目录菜单
def menu():
    #获取所有的英雄id
    getHeroIdList()
    # 调用下载皮肤的方法
    downloadSkin()
    #用户输入y:继续  输入n:退出
    yesOrNo = input("输入y,继续;输入n:退出")
    if yesOrNo=='y':
        menu()
    elif yesOrNo=='n':
        print("程序正在退出...")

if __name__ == '__main__':
    # main函数中的变量是全局变量(其他函数可以随意使用)
    herolist_url = "https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js"
    heroinfo_url = "https://game.gtimg.cn/images/lol/act/img/js/hero/{}.js"
    heroIdList = []
    menu()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发光的大猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值