Python3(二):调用王者荣耀英雄列表接口爬虫英雄皮肤海报

展示

注意: 接口返回的对象中的皮肤数与实际的皮肤数可能存在不相等
不过不重要,重要的是思路方法
在这里插入图片描述
在这里插入图片描述

源码

import os
import requests
import shutil

if __name__ == '__main__':
    url = 'https://pvp.qq.com/web201605/js/herolist.json'
    hero_list = requests.get(url)
    hero_list_json = hero_list.json()  # 英雄json
    print(hero_list_json)

    save_path = './images/'
    if os.path.exists(save_path):  # 文件夹是否存在
        shutil.rmtree(save_path)
    os.mkdir(save_path)

    for hero in hero_list_json:

        os.mkdir(save_path + hero['cname'])  # 创建英雄名字目录

        hero_skin_count = 1  # 英雄皮肤总数(因为已经做了请求出错处理,所以可以给一个较大值以便遍历的皮肤数量的完整)
        if 'skin_name' in hero:
            hero_skin_count = len(hero['skin_name'].split('|'))
        else:
            hero_skin_count = 1
        print('-【%s】%s个皮肤==================' % (hero['cname'], str(hero_skin_count)))

		# hero_skin_count = 10
		# for i in range(1, hero_skin_count):
		# => 以下1行可以替换成以上2行代码
        for i in range(1, hero_skin_count + 1):
            hero_link = 'https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/%s/%s-bigskin-%s.jpg' % (
            hero['ename'], hero['ename'], str(i))
            hero_skin = requests.get(hero_link)
            if hero_skin.status_code == 200:
                print('success: %s %s 请求成功,开始写入' % (hero['cname'], str(i)))
                with open(save_path + hero['cname'] + '/' + str(i) + '.jpg', 'wb') as file:
                    file.write(hero_skin.content)
                    print('success: %s %s 写入完成' % (hero['cname'], str(i)))
            else:
                print('\033[1;31;40merror: %s %s 请求失败\033[0m' % (hero['cname'], str(i)))
                print(hero_link)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Prosper Lee

您的赏赐将是我创作的最大动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值