python 爬取英雄联盟皮肤并下载的示例


Posted in Python onDecember 04, 2020

爬取结果:

python 爬取英雄联盟皮肤并下载的示例

爬取代码

import os
import json
import requests
from tqdm import tqdm

def lol_spider():
  # 存放英雄信息
  heros = []
  # 存放英雄皮肤
  hero_skins = []
  # 获取所有英雄信息
  url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
  hero_text = requests.get(url).text
  # 转为 json 格式
  hero_json = json.loads(hero_text)['hero']
  path = os.getcwd()
  # 获取当前文件夹路径
  workspace = os.getcwd()
  # 皮肤路径
  skin_path = "{}\\{}".format(workspace, 'skins')
  # 遍历列表
  for hero in hero_json:
    # 将每一个英雄的 id、name 放入一个字典中
    hero_dict = {'id': hero['heroId'], 'name': hero['name']}
    # 放入列表
    heros.append(hero_dict)
  # 遍历列表
  for hero in heros:
    hero_id = hero['id']
    hero_name = hero['name']
    # 为每一个英雄创建一个以自己名字命名的文件夹,用来存放皮肤图片
    dir_name = skin_path + '\\{}'.format(hero_name)
    if not os.path.exists(dir_name):
      os.mkdir(dir_name)
    # 进入文件夹
    os.chdir(dir_name)
    # 根据每一个英雄的 id 生成皮肤信息的 url
    hero_skin_url = 'https://game.gtimg.cn/images/lol/act/img/js/hero/' + hero_id + '.js'
    # 通过 url 获取英雄的皮肤数量
    skin_text = requests.get(hero_skin_url).text
    skin_json = json.loads(skin_text)
    skin_list = skin_json['skins']
    # 获取皮肤名
    hero_skins.clear()
    for skin in skin_list:
      hero_skins.append(skin['name'].replace('/', '').replace('\\', '').replace(' ', ''))
    # 皮肤数量
    skins_num = len(hero_skins)
    s = ''
    for i in tqdm(range(skins_num), desc='【' + hero_name + '】皮肤下载'):
      if len(str(i)) == 1:
        s = '00' + str(i)
      elif len(str(i)) == 2:
        s = '0' + str(i)
      elif len(str(i)) == 3:
        pass
      try:
        # 拼接指定皮肤的 url
        skin_url = 'https://game.gtimg.cn/images/lol/act/img/skin/big' + hero_id + '' + s + '.jpg'
        img = requests.get(skin_url)
      except:
        # 没有炫彩皮肤 url 则跳过
        continue
      # 保存皮肤图片
      if img.status_code == 200:
        with open(hero_skins[i] + '.jpg', 'wb') as f:
          f.write(img.content)



if __name__ == '__main__':
  lol_spider()

以上就是python 爬取英雄联盟皮肤并下载的示例的详细内容,更多关于python 爬取英雄联盟皮肤的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
python+pillow绘制矩阵盖尔圆简单实例
Jan 16 Python
Python之reload流程实例代码解析
Jan 29 Python
python编写暴力破解zip文档程序的实例讲解
Apr 24 Python
解决pycharm无法调用pip安装的包问题
May 18 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
使用Python实现跳一跳自动跳跃功能
Jul 10 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python支付宝支付示例详解
Aug 22 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
Jan 28 Python
OpenCV 表盘指针自动读数的示例代码
Apr 10 Python
Django中celery的使用项目实例
Jul 07 Python
Python爬虫之Selenium设置元素等待的方法
Dec 04 #Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 #Python
Python爬虫中Selenium实现文件上传
Dec 04 #Python
利用python进行文件操作
Dec 04 #Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 #Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 #Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 #Python
You might like
德劲1104的电路分析与改良
2021/03/01 无线电
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
刷新页面实现方式总结(HTML,ASP,JS)
2008/11/13 Javascript
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
Jquery判断$("#id")获取的对象是否存在的方法
2013/09/25 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
Django数据库表反向生成实例解析
2018/02/06 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
德国化妆品和天然化妆品网上商店:kosmetikfuchs.de
2017/06/09 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
校园创业策划书
2014/01/14 职场文书
2014年师德师风自我剖析材料
2014/09/27 职场文书
交通安全横幅标语
2014/10/07 职场文书
创业计划书之废品回收
2019/09/26 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL