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正则表达式抓取成语网站
Nov 20 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
Nov 23 Python
50行Python代码实现人脸检测功能
Jan 23 Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
python获取响应某个字段值的3种实现方法
Apr 30 Python
keras自定义回调函数查看训练的loss和accuracy方式
May 23 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
Jun 04 Python
python datetime时间格式的相互转换问题
Jun 11 Python
Python是怎样处理json模块的
Jul 16 Python
Django路由层URLconf作用及原理解析
Sep 24 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
php文件包含的几种方式总结
2019/09/19 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
Javascript----文件操作
2007/01/18 Javascript
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
Python实现的简单发送邮件脚本分享
2014/11/07 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
python编写简单端口扫描器
2019/09/04 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
python 制作磁力搜索工具
2021/03/04 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
SQL语言面试题
2013/08/27 面试题
岗位职责的含义
2013/11/17 职场文书
个性与发展自我评价
2014/02/11 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers