python爬取英雄联盟所有皮肤

2023-11-09

import jsonpath
import requests
import json
import os
import time

# 程序开始时间
start = time.time()
from tqdm import tqdm
from time import sleep

# 如果有英雄联盟就存入没有就创建这个文件夹
yxlm_hero_skin_dir = 'D:/Python2020-邱勋涛/爬虫self/英雄联盟/'
if not os.path.exists(yxlm_hero_skin_dir):
    os.mkdir(yxlm_hero_skin_dir)

# hero_list.js文件
url1 = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
hero_text = requests.get(url1).text
# 转为 json 格式,且去掉hero成列表形式
hero_json = json.loads(hero_text)['hero']

# 横向皮肤的张数
x = 0
# 竖向皮肤的张数
q = 0
# 炫彩皮肤的张数
t = 0

for m in range(len(hero_json)):
    # 英雄id
    hero_id = hero_json[m]["heroId"]
    # 英雄名字
    hero_name = hero_json[m]['name']
    # print(hero_id)
    # print(hero_name)
    url2 = ("https://game.gtimg.cn/images/lol/act/img/js/hero/%s.js") % hero_id

    hero_text = requests.get(url2).text
    # 获取皮肤的js文件  从而获取他的皮肤id
    every_hero_js = json.loads(hero_text)["skins"]
    # print(len(every_hero_js))
    # print(every_hero_js)
    # 低奢的一种进度条显示的方法,就是利用tqdm库来实现
    for i in tqdm(range(len(every_hero_js))):

        heroName = every_hero_js[i]["name"]
        # 因为文件夹和图片命名不能带 /  ,K/DA系列 的皮肤需要进行判断,存在替换成空
        if "/" in heroName:
            heroName = heroName.replace("/", "")
        print(heroName)
        # 皮肤id
        skin_Id = every_hero_js[i]["skinId"]
        print(skin_Id)
        # 横向皮肤的url
        across_pic_url = every_hero_js[i]["mainImg"]
        # 如果url为空,跳过不下载
        if not across_pic_url:
            across_pic_url = None
        print(across_pic_url)

        # 竖向皮肤的url
        vertical_pic_url = every_hero_js[i]["loadingImg"]
        # 如果url为空,跳过不下载
        if not vertical_pic_url:
            vertical_pic_url = None
        print(vertical_pic_url)

        # 炫彩皮肤的url
        xuanchai_skin_url = every_hero_js[i]["chromaImg"]
        # 如果url为空,跳过不下载
        if not xuanchai_skin_url:
            xuanchai_skin_url = None
        print(xuanchai_skin_url)

        # 分类文件夹
        hero_skin_dir = yxlm_hero_skin_dir + hero_name + "/"
        if not os.path.exists(hero_skin_dir):
            os.mkdir(hero_skin_dir)

        # 如果url存在 则保存图片
        if across_pic_url:
            skin_a_picture = requests.get(across_pic_url).content
            with open(hero_skin_dir + heroName + '.jpg', 'wb') as f:
                f.write(skin_a_picture)
                x = x + 1
        # 如果url存在 则保存图片
        if vertical_pic_url:
            skin_v_picture = requests.get(vertical_pic_url).content
            with open(hero_skin_dir + heroName + '.png', 'wb') as f:
                f.write(skin_v_picture)
                q = q + 1
        # 如果url存在 则保存图片
        if xuanchai_skin_url:
            skin_c_picture = requests.get(xuanchai_skin_url).content
            with open(hero_skin_dir + heroName + '.png', 'wb') as f:
                f.write(skin_c_picture)
                t = t + 1
        # 计算皮肤总数量
        z = t + q + x

        # 程序结束时间
        end = time.time()

        # 计算执行时间
        over_time = end - start

        print("本次服务共下载%s张英雄联盟皮肤图片,一共耗时%s秒,欢迎下次光临" % (z, over_time))
# 邱勋涛撰写,未经允许,不得转载,否则坐牢吧
# 直接复制代码运行,需要修改代码中的俩路径,别这么懒
# 这里面注释很详细,认真看能看懂,不懂就问同学

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python爬取英雄联盟所有皮肤 的相关文章

随机推荐

  • 【干货】Android系统定制基础篇:第三部分(Android静默安装、Android支持usb打印机)

    1 Android静默安装 一些产品要求APP在升级时能够实现静默安装 而无需弹出安装界面让用户确认 这里提出两种实现方案 方案一 APP调用 pm 命令实现静默安装 此方案无须修改Android源码 但需要root权限 方案二 修改And
  • ESP32之 ESP-IDF + Clion 开发环境搭建(一)—— Windows版

    本文章 来自原创专栏 ESP32教学专栏 基于ESP IDF 讲解如何使用 ESP IDF 构建 ESP32 程序 发布文章并会持续为已发布文章添加新内容 每篇文章都经过了精打细磨 通过下方对话框进入专栏目录页 CSDN 请求进入目录 O
  • 基于matlab的图解粒度参数计算,基于MATLAB的图解粒度参数计算

    陶瓷材料 第26卷 第3期 2006年8月 热 带 地 理 TROPICALGEOGRAPHY Vol126 No13 Aug 2006 基于MATLAB的图解粒度参数计算 王 为 吴 正 华南师范大学地理系 广州510631 摘 要 粒度
  • Android res文件夹下资源定义及使用

    1 颜色 RGB ARGB RRGGBB AARRGGBB 颜色资源应该位于
  • Android JNI实现锅炉压力显示系统详解

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 第一步创建GuoLu c文件 Created by DELL on 2023 8 13 include
  • TCP协议通讯流程——三次握手四次挥手

    TCP协议通讯流程 如图 1 服务器的初始化 服务器端 调用socket 创建文件描述符 调用bind 将当前文件描述符与IP地址跟端口号绑定在一起 如果该端口号已经被其它进程占用了 就会bind失败 调用listen 声明当前文件描述符为
  • 【vue】Echarts3D地图下钻

    需求分析 地图下钻是一个非常常见的功能需求 本篇文章会细致讲解如何在Vue3中使用Eharts gl渲染出3D地图 并且实现地图下钻和返回上级地图的完整功能 github项目demo地址 点击这里 注意此项目为vue3版本 vue2版本在仓
  • Linux如何启动网卡?

    在新安装的Linux系统 我们配置的网卡可能是没有激活的 此时ping不通外网 下载包的时候也会报错 下面我们看看如何启动网卡 1 首先获取root权限 输入su 再输入密码 密码是不显示的 注意小键盘有没有锁住 获取root权限后 输入提
  • Python Turtle 画图

    https www jb51 net article 130181 htm Turtle库是Python语言中一个很流行的绘制图像的函数库 想象一个小乌龟 在一个横轴为x 纵轴为y的坐标系原点 0 0 位置开始 它根据一组函数指令的控制 在
  • PNG编解码算法详解

    1 PNG介绍 PNG是便携式网络图型 Portable Network Graphics 的缩写 由于PNG带有透明通道 无损压缩 可提升设计元素的呈现效果 因此设计上对PNG情有独钟 广泛的运用在设计 游戏 网页 app开发里 实际使用
  • MFC 最详细入门教程

    From https blog csdn net wang18323834864 article details 78621633 Visual Studio 2019 https visualstudio microsoft com zh
  • AttributeError: module 'urllib' has no attribute 'urlopen'

    使用py3的urllib urlopen方法时报错 PS C Users jiangcheng Documents Python Scripts gt python Python 3 6 5 Anaconda Inc default Mar
  • IDEA常用插件之代码扫描SonarLint

    文章目录 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 查看结果 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 项目右键 gt Analyze gt Analyze with SonarLint 查看结果 扫
  • Colmap学习三:后端Initialization部分(基础矩阵F、本质矩阵E和单应矩阵H)

    算矩阵的基础知识 解析本质 基础 单应矩阵的自由度 1 寻找初始像对 1 1手动选择ID 1 2自动筛选 prior focal length存在情况下 开始筛选 匹配点数由小到大排序 第二张候选影像的匹配数目大于init min num
  • 什么是JSP

    JSP 与 PHP ASP ASP NET 类似 是一种运行在web端的语言 JSP 全称Java Server Pages 是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求 而动态
  • 数据库 索引

    多数数据库 使用 B 树 Balance Tree 的结构来保存索引 B 树 最上层节点 根节点 最下层节点 叶子节点 两者之间的节点 中间节点 B 树 显著特征 从根节点 到各个叶子节点的距离都是相等的 如此 检索任何值时 都经过相同数目
  • 详解map、set、multimap、multiset的使用

    作者 阿润菜菜 专栏 C 目录 前言 set multiset的使用 1 set 2 multiset 3 什么时候应该使用multiset而不是set map multimap的使用 1 map 2 multimap 3 什么时候应该使用
  • 手把手教你创建的私人git仓库(Linux CentOS7 )

    手把手教你创建的私人git仓库 Linux CentOS7 安装git yes yum install git core 配置用户名和邮箱 此处以 lrq lrq email com 为例 git config global user na
  • js 实现rgb和十六进制的代码转化

    十六进制转化为RGB function set16ToRgb str 十六进制颜色代码的正则表达式 var reg 0 9A Fa f 3 0 9A Fa f 6 test 检测str是否匹配十六进制颜色的模式 if reg test st
  • python爬取英雄联盟所有皮肤

    import jsonpath import requests import json import os import time 程序开始时间 start time time from tqdm import tqdm from time