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之类的细节
Oct 13 Python
Python中的迭代器漫谈
Feb 03 Python
Python设置默认编码为utf8的方法
Jul 01 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
python爬取指定微信公众号文章
Dec 20 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
使用python list 查找所有匹配元素的位置实例
Jun 11 Python
在pytorch中为Module和Tensor指定GPU的例子
Aug 19 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
Python压缩模块zipfile实现原理及用法解析
Aug 14 Python
Python监听键盘和鼠标事件的示例代码
Nov 18 Python
python Pexpect模块的使用
Dec 25 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学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
python中的Elasticsearch操作汇总
2019/10/30 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
财务管理专业毕业生求职信范文
2013/09/21 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
户外亲子活动总结
2015/05/08 职场文书
主持人开场白台词
2015/05/29 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
基于go interface{}==nil 的几种坑及原理分析
2021/04/24 Golang
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript