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之wxPython菜单使用详解
Sep 28 Python
python使用三角迭代计算圆周率PI的方法
Mar 20 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
用Eclipse写python程序
Feb 10 Python
python3基于TCP实现CS架构文件传输
Jul 28 Python
Python编程flask使用页面模版的方法
Dec 28 Python
用pycharm开发django项目示例代码
Jun 13 Python
在python中用print()输出多个格式化参数的方法
Jul 16 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 Python
pycharm + django跨域无提示的解决方法
Dec 06 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发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
原生js实现验证码功能
2017/03/16 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
关于js中的鼠标事件总结
2017/07/11 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
Python random模块用法解析及简单示例
2017/12/18 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
给校长的建议书300字
2014/05/16 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
学习保证书怎么写
2015/02/26 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
Pygame Event事件模块的详细示例
2021/11/17 Python
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫