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在线运行代码助手
Jul 15 Python
Python中is与==判断的区别
Mar 28 Python
Python中反射和描述器总结
Sep 23 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
pandas数据拼接的实现示例
Apr 16 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 Python
python爬取抖音视频的实例分析
Jan 19 Python
python tkinter模块的简单使用
Apr 07 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 15 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
php下mysql数据库操作类(改自discuz)
2010/07/03 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
vue编写简单的购物车功能
2021/01/08 Vue.js
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
Python元组常见操作示例
2019/02/19 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
高级文秘工作总结的自我评价
2013/09/28 职场文书
机械绘图员岗位职责
2013/11/19 职场文书
护理个人求职信范文
2014/01/08 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
病媒生物防治方案
2014/05/13 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS