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使用Flask框架同时上传多个文件的方法
Mar 21 Python
Python进阶篇之字典操作总结
Nov 16 Python
python模块之re正则表达式详解
Feb 03 Python
Pycharm学习教程(7)虚拟机VM的配置教程
May 04 Python
Python实现对百度云的文件上传(实例讲解)
Oct 21 Python
PyTorch CNN实战之MNIST手写数字识别示例
May 29 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
matplotlib实现热成像图colorbar和极坐标图的方法
Dec 13 Python
Django框架 Pagination分页实现代码实例
Sep 04 Python
tensorboard显示空白的解决
Feb 15 Python
Pycharm编辑器功能之代码折叠效果的实现代码
Oct 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
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
用js重建星际争霸
2006/12/22 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
js Calender控件使用详解
2015/01/05 Javascript
JavaScript运算符小结
2015/06/03 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
几种tab切换详解
2017/02/03 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
js实现秒表计时器
2019/12/16 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
python 网络编程常用代码段
2016/08/28 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
python list元素为tuple时的排序方法
2018/04/18 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
Django继承自带user表并重写的例子
2019/11/18 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
美国在线健康和美容市场:Pharmapacks
2018/12/05 全球购物
驻村工作先进事迹
2014/08/14 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS