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中定义结构体的方法
Mar 04 Python
解读Django框架中的低层次缓存API
Jul 24 Python
Python中的列表生成式与生成器学习教程
Mar 13 Python
Python实现的递归神经网络简单示例
Aug 11 Python
在cmder下安装ipython以及环境的搭建
Oct 19 Python
浅谈Python反射 & 单例模式
Mar 21 Python
Python弹出输入框并获取输入值的实例
Jun 18 Python
Python 中Django验证码功能的实现代码
Jun 20 Python
numpy库reshape用法详解
Apr 19 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 Python
django 模型字段设置默认值代码
Jul 15 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 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递归列出所有文件和目录的代码
2008/09/10 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
php查找任何页面上的所有链接的方法
2013/12/03 PHP
php自动获取关键字的方法
2015/01/06 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
JavaScript插入动态样式实现代码
2012/02/22 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
js实现tab切换效果
2017/02/16 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
python中dict使用方法详解
2019/07/17 Python
Django实现跨域请求过程详解
2019/07/25 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
phpquery中文手册
2021/03/18 PHP
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
办公自动化毕业生求职信
2014/03/09 职场文书
小学捐书活动总结
2014/07/05 职场文书
个人创业事迹材料
2014/12/30 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL