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标准异常和异常处理详解
Feb 02 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 Python
python使用KNN算法手写体识别
Feb 01 Python
使用Python爬取最好大学网大学排名
Feb 24 Python
深入浅析python with语句简介
Apr 11 Python
Python实现性能自动化测试竟然如此简单
Jul 30 Python
详解Python3迁移接口变化采坑记
Oct 11 Python
python实现批量文件重命名
Oct 31 Python
python带参数打包exe及调用方式
Dec 21 Python
Python接口自动化判断元素原理解析
Feb 24 Python
Django choices下拉列表绑定实例
Mar 13 Python
Python flask框架实现浏览器点击自定义跳转页面
Jun 04 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
Search Engine Friendly的URL设计
2006/10/09 PHP
封装一个PDO数据库操作类代码
2009/09/09 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
基于jquery的动态创建表格的插件
2011/04/05 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
uniapp实现横向滚动选择日期
2020/10/21 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
python生成指定长度的随机数密码
2014/01/23 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
用Python写一个for循环的例子
2016/07/19 面试题
传媒专业推荐信范文
2013/11/23 职场文书
服装创业计划书范文
2014/02/05 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
Java如何实现树的同构?
2021/06/22 Java/Android