Python爬取lol英雄联盟全阵容皮肤

我用Python爬取英雄联盟的皮肤,隔壁家的小弟弟都馋哭了 一、推理原理 1.先去《英雄联盟》官网找到英雄及皮肤图片的网址: lol.qq.com/data/info-h… 2.从上面网址可以看到所有英雄都在,按下F12查看源代码,发现英雄及皮肤图片并没有直接给出,而是隐藏在JS文件中。这时候需要点开Network,找到js窗口,刷新网页,就看到一个champion.js的选项,点击可以看到一个字典——里面就包含了所有英雄的名字(英文)以及对应的编号。 3.但是只有英雄的名字(英文)以及对应的编号并不能找到图片地址,于是回到网页,随便点开一个英雄,跳 阅读详情

1、结果展示

将每一个英雄保存一个文件夹下,把他所有的皮肤保存在他对应的文件夹下(自动生成的你运行爬虫就好了)

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤
QQ群:961562169

在这里插入图片描述在这里插入图片描述

2、代码解释

2.1用到第三方的模块

有些自带,有些需要你自己安装,pip install 模块名 就好了,如果有问题可以看我的第三方库导入大全那篇文章,有详细解释

import requests # 请求数据
import os # 操作系统模块,用于创建文件夹
import jsonpath # 用于提取json类型的数据
import re # 正则表达式模块,用于获取皮肤名称
import time # 时间模块,防止爬的太快被封id
import random # 随机数模块,配合time使用

2.2请求头以及主页面js地址

user-agent:故名思意,用户代理,你设置了这个相当于把爬虫程序伪装成浏览器,如果不设置,服务器就会发现你是爬虫,这是最基本的反爬手段之一
hero_list_url:这是通过分析lol官网页面从中提取hero_id的url,如果想学页面分析可以留言我在写一篇分析页面的文章,这个主要教如何爬取

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'
           }
hero_list_url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'

2.3获得详情页面的函数

写一个获得hero_id的函数找到每一个英雄的详情url为下载做准备,这里我用了列表推导式作为返回值将所有英雄的详情url返回出来方便下载函数调用

def get_id(url):
    response = requests.get(url, headers=headers).json()
    hero_Id = jsonpath.jsonpath(response, '$..heroId')
    time.sleep(random.randint(1, 3))
    base_url = 'http://game.gtimg.cn/images/lol/act/img/js/hero/{}.js'
    return [base_url.format(every_id) for every_id in hero_Id]

2.4定义函数一个提取及下载数据

我直接再代码中进行解释

def get_skin(li1):
      for url in li1: # 遍历列表推导式
        response = requests.get(url, headers=headers)
        result = response.json()['skins'] # 得到关于皮肤的所有信息
        skin_name = [] # 设置空列表用来存储提取到的皮肤名
        skin_url = [] # 设置空列表用来存储提取到的皮肤下载地址
        time.sleep(random.randint(1, 3)) # 随机休眠1到3秒防止被封
        for skin_json in result:
            skin_name.append(skin_json['name']) # 将英雄名保存到上面的空列表之中
            skin_url.append(skin_json['mainImg']) # 将英雄下载地址保存到上面的空列表之中
        hero_folder = 'allhero/' + response.json()['hero']['name'] + response.json()['hero']['title']
        #设置保存的路径
        if not os.path.exists(hero_folder):
            os.mkdir(hero_folder)
        # 判断路径是否存在不存在就创建一个
        for i in range(len(skin_url)):
            if not skin_url[i]=='':
                image_path = hero_folder +'/' + re.findall('\w+',skin_name[i])[0] + '.png' # 具体设置图片的下载路径以及名称和格式
                with open(image_path,'wb')as file:
                    print('正在下载{}'.format(skin_name[i])) # 打印下载进度
                    file.write(requests.get(skin_url[i],headers=headers).content) #下载图片

3、完整代码

如果遇到问题可以留言,我看到了就会解答,喜欢的话可以关注我呀,我基本每天都会更新有趣的东西

import requests
import os
import jsonpath
import re
import time
import random

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'
}


def get_id(url):
    response = requests.get(url, headers=headers).json()
    hero_Id = jsonpath.jsonpath(response, '$..heroId')
    time.sleep(random.randint(1, 3))
    base_url = 'http://game.gtimg.cn/images/lol/act/img/js/hero/{}.js'
    return [base_url.format(every_id) for every_id in hero_Id]


def get_skin(li1):
    for url in li1:
        response = requests.get(url, headers=headers)
        result = response.json()['skins']
        skin_name = []
        skin_url = []
        time.sleep(random.randint(1, 3))
        for skin_json in result:
            skin_name.append(skin_json['name'])
            skin_url.append(skin_json['mainImg'])
        hero_folder = 'allhero/' + response.json()['hero']['name'] + response.json()['hero']['title']
        if not os.path.exists(hero_folder):
            os.mkdir(hero_folder)
        for i in range(len(skin_url)):
            if not skin_url[i] == '':
                image_path = hero_folder + '/' + re.findall('\w+', skin_name[i])[0] + '.png'
                with open(image_path, 'wb')as file:
                    print('正在下载{}'.format(skin_name[i]))
                    file.write(requests.get(skin_url[i], headers=headers).content)


if __name__ == '__main__':
    hero_list_url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
    li1 = get_id(hero_list_url)
    get_skin(li1)
Python爬虫实战:抓取《英雄联盟》全英雄皮肤项目 本文还有配套的精品资源,点击获取 简介:本项目展示了如何使用Python爬虫技术获取《英雄联盟》(LOL)游戏中所有英雄的皮肤图片。涉及知识点包括网页解析、HTTP请求、数据存储等。项目详细介绍了使用 requests 库获取网页内容、 BeautifulSoup 解析HTML文档、提取图片链接,并对图片进行存储。同时也涉及了如何应对网站的反爬虫... 阅读详情

相关推荐

Python获取全部英雄联盟皮肤代码

此代码可爬取目前所有英雄的高清皮肤,喜欢的可以下载

在 Vue 项目中引入 tinymce 富文本编辑器

项目中原本使用的富文本编辑器是 wangEditor,这是一个很轻量、简洁编辑器 但是公司的业务升级,想要一个功能更全面的编辑器,我找了好久,目前常见的编辑器有这些: UEditor:百度前端的开源项目,功能强大,基于 jQuery,但已经没有再维护,而且限定了后端代码,修改起来比较费劲 bootstrap-wysiwyg:微型,易用,小而美,只是 Bootstrap + jQuery......

weixin_34411563的博客 4753

Python3爬取英雄联盟英雄皮肤大图实例代码

爬虫思路 初步尝试 我先查看了network,并没有发现有可用的API;然后又用bs4去分析英雄列表页,但是请求到html里面,并没有英雄列表,在英雄列表的节点上,只有“正在加载中”这样的字样;同样的方法,分析英雄详情也是这种情况,所以我猜测,这些数据应该是Javascript负责加载的。 继续尝试 然后我就查看了 英雄列表的源代码 ,查看外部引入的js文件,以及行内的js脚本,大概在368行,发现了有处理英雄列表的js注释,然后继续往下读这些代码,发现了第一个彩蛋,也就是他引入了一个champion.js的文件,我猜测,这个应该就是英雄列表大全了,然后我打开了这个链接的js,一眼看过去,黑

tinymce-vue使用教程

转自:tinymce-vue使用教程 - 简书 一、资源下载 npm install tinymce -S //当前版本^5.1.1 npm install @tinymce/tinymce-vue -S //当前版本^3.0.1 二、安装语言包 资源下载后,在 node_modules 中找到 tinymce/skins 目录,然后将 skins 目录拷贝到 static 目录下,(PS: 如果是使用 vue-cli 3.x 构建的 typescript 项目,就放到 public 目

Future1994的博客 1万+

简话 RAG 本地部署(DeepSeek + RAGFlow)

RAG = DeepSeek + OLlama + Docker + RAGFlow + Windows 11 简话 RAG 本地部署

捉虫客 de 博客 1万+

多目标跟踪中使用trackeval评估dancetrack运行结果

trackeval使用

qq_46144849的博客 1783

引入tinymce-vue后调试器报错 Refused to apply styl

其中橙色框部分是因为没有引入对应插件导致的(code , lineheight , indent2em);再我们下载的包中其实已经有了这些插件,只是页面没有引入,我们只需要页面引入就可以了;当添加完成这两个属性及路径后,页面上的报错就消失了;

lucker_y的博客 1139

three.js 载入 3D 模型的方法

三维模型的加载器ColladaLoader模型加载器。GLTFLoader模型加载器。OBJLoader模型加载器。FBXLoader模型加载器。

w418856的博客 4363

Element-UI中调用tinymce6实现本地化加载,并解决提示:This domain is not registered with TinyMCE Cloud,省去api-key

最新的tinymce会提示”This domain is not registered with TinyMCE Cloud“,意思就是要求注册tinymce官方云才能下载所需组件类库。既然这样,那么解决办法就简单了,要么去注册云,要么屏蔽掉提示~~,要么全部由本地加载。网上大部分文章都没有细化其实现,希望本文看完你就能完全领会tinymce6的开发了。

暂时先用这个名字 9926

Research Proposal:自动驾驶 行人运动预测

Research Proposal about Pedestrian/Cyclist Motion Prediction for Self-Driving Vehicles   If I can be provided with the opportunity to conduct PhD research in pedestrian/cyclist motion prediction for...

Poetry Wanderer的博客 3088

IMU卡尔曼滤波方法详细介绍

本文介绍了基于IMU和卡尔曼滤波的状态估计方法。系统采用9维状态向量(位置、速度、加速度计零偏),通过牛顿运动学建立状态方程,并利用外部位置观测进行校正。详细推导了状态转移矩阵和控制输入矩阵的形式,阐述了预测和更新的计算步骤。同时说明了过程噪声Q和观测噪声R的设置原则,其中Q反映模型不确定性,R取决于传感器精度。该方法可有效融合IMU测量与外部观测数据,实现位置、速度和偏置的联合估计。

haing2019的博客 758

爬取实例三:爬取lol英雄联盟全阵容皮肤和爬王者荣耀全阵容皮肤

1、结果展示 将每一个英雄保存一个文件夹下,把他所有的皮肤保存在他对应的文件夹下(自动生成的你运行爬虫就好了) 2、代码解释 2.1用到第三方的模块 有些自带,有些需要你自己安装,pip install 模块名 就好了,如果有问题可以看我的第三方库导入大全那篇文章,有详细解释 import requests # 请求数据 import os # 操作系统模块,用于创建文件夹 import jsonpath # 用于提取json类型的数据 import re # 正则表达式模块,用于获取皮肤名称 impor

weixin_49088841的博客 766

0.1 专栏导读:为什么需要从 MM 理解 HMM

本文探讨了GPU计算框架中CPU与GPU内存管理的困境,介绍了Linux内核的HMM(Heterogeneous Memory Management)解决方案。传统显式拷贝模型存在编程复杂、指针失效等问题,而HMM通过共享虚拟地址空间、自动页面迁移等机制实现透明内存管理。文章分析了HMM依赖的Linux内存管理基础设施,包括页表遍历、MMU通知、ZONE_DEVICE等核心组件,并梳理了从经典MM到支持异构设备的进化历程。最后给出了学习HMM的8层知识体系,强调理解底层MM机制是掌握HMM的关键。

图形/计算GPU的驱动与虚拟化技术分享园地 769

Python爬取英雄联盟全皮肤

Python爬取英雄联盟皮肤 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮

qq_44148778的博客 1039

VS Code 重大更新:Agent Skills完美支持!

代码不会骗人,但你的 LLM 可能会编个故事——除非你给它一本《技能手册》。——某位深夜调试成功的 Go 工程师。

weixin_44058951的博客 3461

【架构】-- StarRocks 和 Doris 介绍与选型建议

查询性能 | ✅ 高性能,支持向量化执行和 CBO 优化器 | ✅ 高性能,优化的查询引擎 |- **实时性要求高**:如果业务对数据的实时性要求较高,建议选择 **StarRocks**,其在实时数据处理和低延迟查询方面表现优越。- **复杂查询需求**:对于需要处理复杂多表关联查询的场景,两者均可胜任,需根据具体性能测试结果进行选择。

欢迎来到我的博客,一起探索代码里的世界! 1835

Python爬虫实战——LOL英雄皮肤图片(多线程爬虫,带详细注释,皮肤全部爬完)

LOL图片爬取

weixin_54243306的博客 1691

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python-爬虫篇-英雄联盟皮肤爬图

【代码】python-爬虫篇-英雄联盟皮肤爬图。

stqer的博客 437

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

使用python爬取英雄联盟官方英雄皮肤图片

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun 开发工具 python版本:3.6.8 编辑器:pycharm 相关模块 import requests import re import json import os 模块安装 pip install -i https://pypi.doubanio.com/s

人生苦短, 还不用Python? 968

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】

目录

Roymasterpiece的博客 3436

python爬取英雄联盟官网所有英雄皮肤数据,超详细讲解

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

m0_60667406的博客 1082

Python爬虫入门教程12:英雄联盟皮肤图片的爬取(1)

爬取英雄联盟所有英雄的皮肤背景图。包含炫彩,按照英雄分别保存。二、💥网页数据分析如图所示,皮肤图片url地址 https://game.gtimg.cn/images/lol/act/img/skin/big1001.jpg每张图片的url地址都是根据后面的 big1001改变的而一一对应的。所以可以复制 big1001在开发者工具里面进行搜索,查找一下图片地址的来源。如图所示,https://game.gtimg.cn/images/lol/act/img/js/hero/1.js。

m0_60607971的博客 753

Python爬虫采集英雄联盟皮肤图片

今天来用requests爬取英雄联盟官网所有英雄的皮肤图片,并以英雄分类保存。 一,网页分析 二,获取英雄名(创建目录) 三,获取皮肤名称 四,获取皮肤图片链接 五,保存 完整代码: import requests import json import os from time import perf_counter start = perf_counter() headers = { 'user - agent': 'Mozilla / 5.0(Windows NT 10.0;W

~ 2913

magento获取Base Url , Skin Url , Media Url , Js Url , Store Url 和 Current Url

magento如何在phtml文件中获取url? 1. 获取 Base Url : Mage::getBaseUrl(); 2. 获取 Skin Url : Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN); (a) Unsecure Skin Url : $this->getSkinUrl('images...

358

Magento Block获取各种URL的方法

Mage::getBaseUrl('media') //可获得 media 带 http 的url 地址。 //同理也可以获得skin 和js 目录的地址: Mage::getBaseUrl('skin'); Mage::getBaseUrl('js'); //而获取带http 的网站根地址为: Mage::getBaseUrl('web'); //在cms中调用的URL的

Jue_2014的专栏 1616
上一篇: Python解决同步验证码模拟登录问题
下一篇: Python如何抓取APP数据?抓包工具Fiddler介绍
Python_sn
博客等级 码龄6年 324粉丝 290原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值