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 zip文件 压缩
Dec 24 Python
举例讲解Python中字典的合并值相加与异或对比
Jun 04 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
Mar 19 Python
Python实现的爬虫刷回复功能示例
Jun 07 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 Python
Python序列化pickle模块使用详解
Mar 05 Python
python怎么判断模块安装完成
Jun 19 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
Python爬虫之Selenium实现窗口截图
Dec 04 Python
Python 多线程处理任务实例
Nov 07 Python
Python可视化学习之seaborn绘制矩阵图详解
Feb 24 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
js 事件小结 表格区别
2007/08/13 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
2016/08/16 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
python使用百度翻译进行中翻英示例
2014/04/14 Python
python绘图库Matplotlib的安装
2014/07/03 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
python如何将多个PDF进行合并
2019/08/13 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
parser.add_argument中的action使用
2020/04/20 Python
Python插件机制实现详解
2020/05/04 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
Python基于Faker假数据构造库
2020/11/30 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
信息总监管理职责范本
2014/03/08 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
HTML基础详解(下)
2021/10/16 HTML / CSS
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript