首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python3爬取英雄联盟所有英雄皮肤

Python3爬取英雄联盟所有英雄皮肤

作者头像
andrew_a
发布于 2019-07-30 04:44:41
发布于 2019-07-30 04:44:41
1.5K0
举报

上一次爬取了王者荣耀的所有皮肤,比较感兴趣然后再继续爬取英雄联盟的皮肤


打开英雄联盟官网,点击游戏资料,继续按F12,按F5刷新,就会发现有一个champion.js文件,复制这个js文件的地址.和王者荣耀不同,这个是js而王者是json比较好处理。js中有英雄的编号和名字,将keys中的数据拿出来

通过requests的get方法获取到响应的内容,pat_js是正则的规则,compile函数将包含的正则表达式的字符串创建模式对象,直接调用findall方法。返回的就是匹配的字串以列表的形式显示。eval将其转换为字典

def path_js(url_js):

res_js = requests.get(url_js, verify= False).content

html_js = res_js.decode("gbk")

pat_js = r'"keys":(.*?),"data"'

enc = re.compile(pat_js)

list_js = enc.findall(html_js)

dict_js = eval(list_js[0])

print(dict_js)

--------------------------------------------------------------------------------------------------------

在页面中点开英雄资料,没有英雄的皮肤url,需要右键,在新标签页打开,获取到连接http://ossweb-img.qq.com/images/lol/web201310/skin/big266000.jpg

根据获取到的链接分析,big后前三个数字代表英雄的编号,后三个代表皮肤的个数,根据此来拼接获取皮肤图片的链接。每个英雄的皮肤不超过20个,以此来循环获取拼接。(获取的链接会有大量的没有响应的链接)

def path_url(dict_js):

pic_list = []

for key in dict_js:

for i in range(20):

xuhao = str(i)

if len(xuhao) == 1:

num_houxu = "00" + xuhao

elif len(xuhao) == 2:

num_houxu = "0" + xuhao

numStr = key + num_houxu

url = r'http://ossweb-img.qq.com/images/lol/web201310/skin/big' + numStr + '.jpg'

pic_list.append(url)

print(pic_list)

return pic_list

链接获取到之后,开始根据链接来下载皮肤

先生成文件的保存路径

'''

根据字典的value值获取英雄名字,将其作为文件名和保存路径

'''

def name_pic(dict_js, path):

list_filePath = []

for name in dict_js.values():

for i in range(20):

file_path = path + name + str(i) + '.jpg'

list_filePath.append(file_path)

print(list_filePath)

return list_filePath

接下来就是下载图片,将图片写入文件。(解决大量没有响应的链接)还是通过requests的get方法获取 响应,如果响应的text的内容是404,则结束本次循环,如果不是则将该图片写入文件保存。这样就不会下载大量的不能打开的空图片

def writing(url_list, list_filePath):

try:

for i in range(len(url_list)):

res = requests.get(url_list[i], verify=False)

if '404 page not found' in res.text:

print("该英雄皮肤下载完毕"), i

continue

with open(list_filePath[i], "wb") as f:

f.write(res.content)

except Exception as e:

print("下载图片出错,%s" % (e))

return False

获取到996个皮肤


至此,皮肤获取完毕。当然还可以优化,可以尝试使用多线程改进该程序,图片太多,单线程过慢。还有皮肤链接的生成问题,考虑是否有更好的解决办法,不会去生成大量无用的链接。程序会去请求这些无用的链接,造成大量资源浪费。


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫scrapy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用Python爬取英雄联盟(lol)全部皮肤
小二:“唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀...”
Python小二
2020/12/08
1.5K0
用Python爬取英雄联盟(lol)全部皮肤
教你使用几十行代码下载王者荣耀所有皮肤
王者荣耀中的皮肤除了好看外,还能影响手感,其实所谓的手感,就是视觉和听觉上的契合,让击打效果表现得更华丽,更契合手感,如果给你个皮肤,技能显示和音效出现延迟,那个手感就不用多说了。
润森
2022/08/18
1.7K0
教你使用几十行代码下载王者荣耀所有皮肤
用Python爬取王者荣耀英雄皮肤海报图
3,解析数据,需要用json模块,json模块可以把json字符串转换换成Python可交互的数据
Eternity
2022/08/24
7200
上等马还是下等马,英雄联盟LCUAPI研究
最近清明节家里蹲了3天,回归英雄联盟,玩了一会,能看到很多上等马下等马的快速喊话,比较好奇是怎么来的,所以有了这篇记录
UzJu@菜菜狗
2022/04/25
11.4K4
上等马还是下等马,英雄联盟LCUAPI研究
如何爬取王者荣耀英雄皮肤高清图片?
临下班前,看到群里有人在讨论用王者农药的一些皮肤作为电脑的壁纸,什么高清的,什么像素稍低的,网上查了一手,也有,但像素都不一样,所以,我就想着,自己去官网直接爬他的高清皮肤就好了,然后就有了这边文章说的主题了。
我就是马云飞
2018/12/07
2K0
如何爬取王者荣耀英雄皮肤高清图片?
python---爬取英雄联盟皮肤图片
爬LOL的皮肤高清图片的大致步骤就是用selenium去爬取英雄联盟所以英雄的皮肤的url地址,然后在用requests库去将图片下载到本地。
sjw1998
2019/09/28
7100
Python爬虫 带你一键爬取王者荣耀英雄皮肤壁纸
王者荣耀这款手游,想必大家都玩过或听过,游戏里英雄有各式各样的皮肤,制作得很精美,有些拿来做电脑壁纸它不香吗。本文带你利用Python爬虫一键下载王者荣耀英雄皮肤壁纸。
叶庭云
2020/10/26
1.5K0
Python爬虫  带你一键爬取王者荣耀英雄皮肤壁纸
Python爬虫教程:爬取王者荣耀全套皮肤【附源码】
我分析王者荣耀网站上面的英雄资料库发现所有英雄的页面基本上都是连贯的,并且还是偏向与静态网页没有过多的JavaScript渲染,所以比较适合来一波穷举遍历爬虫,但是速度也很快。
python学习教程
2020/04/01
1.9K0
Python爬虫教程:爬取王者荣耀全套皮肤【附源码】
30行Python代码爬取英雄联盟全英雄皮肤
距离上次写爬虫文章已经过了许久了,之前写过一篇20行Python代码爬取王者荣耀全英雄皮肤 [1],反响强烈,其中有很多同学希望我再写一篇针对英雄联盟官网的皮肤爬取,但苦于事情繁多,便一拖再拖,一直拖到了现在,那么本篇文章我们就一起来学习一下如何爬取英雄联盟全英雄皮肤。
ZackSock
2020/12/08
1.1K0
30行Python代码爬取英雄联盟全英雄皮肤
英雄联盟皮肤大拼图
不知不觉英雄联盟也到了S8,作为S4入坑的我,还一直在默默的关注着。今年RNG的一路夺冠,再到SKT的淘汰,联盟发生了挺大的变化,当然啦自己也从联盟中脱坑了,平时也就看看比赛娱乐娱乐自己,虽说生活不止眼前的苟且,还有诗和远方,但现实总是那么可怕,游戏终归是游戏。
小F
2020/10/09
1.2K0
英雄联盟皮肤大拼图
用Python爬取英雄联盟英雄皮肤壁纸
http://lol.qq.com/web201310/info-heros.shtml
HuangWeiAI
2019/10/24
1.1K0
利用Python完成对王者荣耀英雄全皮肤的下载
本文使用python的第三方模块requests爬取王者荣耀所有英雄的图片,并将图片按每个英雄为一个目录存入文件夹中,方便用作桌面壁纸。
python学习教程
2019/09/06
6880
利用Python完成对王者荣耀英雄全皮肤的下载
如何爬取王者荣耀全皮肤英雄壁纸
b、在什么地方:王者荣耀官网----https://pvp.qq.com/web201605/wallpaper.shtml
大家一起学编程
2021/03/29
1.1K0
如何爬取王者荣耀全皮肤英雄壁纸
Python完成英雄联盟原话千图成像,这也太酷了
很久前在刷微博的时候看到了这条,被他给震撼到了,图片是由LOL近千张皮肤图片组合构成的(难道这是用ps做的,还是一张张拼的,应该不可能吧),就在昨天突然就想起了这个事,就决定也做一个,随即便展开了行动。搜到了这篇文章,看了下图片的构成,决定先取得所有皮肤的图片再说吧!便又开始了爬虫!
查理不是猹
2021/12/21
4070
Python完成英雄联盟原话千图成像,这也太酷了
【小白必看】轻松获取王者荣耀英雄皮肤图片的Python爬虫程序
当谈到王者荣耀游戏时,无法忽视的是其丰富多样的英雄皮肤。这些皮肤不仅为玩家提供了个性化的游戏体验,还展示了设计师们的创造力和努力。然而,要手动下载每个英雄的皮肤图片是一项枯燥且费时的任务。 幸运的是,我们可以利用编程的力量来自动化这一过程。本文将介绍如何使用Python编写一个简单的爬虫程序,通过访问英雄主页并解析HTML代码,来批量下载王者荣耀英雄的皮肤图片。
全栈若城
2024/02/29
3420
【小白必看】轻松获取王者荣耀英雄皮肤图片的Python爬虫程序
Python2下载单张图片和爬取网页图片
昨天用Python2爬取了一首歌的热评和评论总数,今天用Python2来下载图片。 一、需求分析 1、知道图片的url地址,将图片下载到本地。 2、知道网页地址,将图片列表中的图片全部下载到本地。 二、准备工作 1、开发系统:win7 64位。 2、开发环境:python2.7。 3、开发工具:PyCharm。 4、浏览器:Chrome。 三、操作步骤 A.知道图片的url地址,将图片下载到本地。 a1、打开Chrome,随意找到一个图片网站。 a2、打开开发者工具(f12键或者fn+f12键),选择第
企鹅号小编
2018/01/30
1.2K0
Python2下载单张图片和爬取网页图片
爬虫入门经典(七) | 一文带你爬取淘宝电场
在前几篇文章中,虽然已经有过用正则表达式解析数据的案例,但是个人感觉干货不够!所以,本次博主诚意满满的再次带来一篇博文~
不温卜火
2020/10/29
4120
爬虫入门经典(七) | 一文带你爬取淘宝电场
2020年学习Python-爬取英雄联盟皮肤
import requests # 导包 爬取英雄联盟英雄皮肤 import os # 使用os创建文件夹 def my_dict(url): # 获取json数据 return requests.get(url).json() # 英雄列表和单个英雄图片都是在json里面 def w_data(path,url): # 存储图片 name = url.split('/')[-1] # 最后图片链接拆分后取最后一项做图片名字 with open(f'{path}/
qq317062516
2020/08/27
7490
【小白必看】使用Python批量下载英雄联盟皮肤图片的技术实现
全栈若城
2024/02/29
2530
【小白必看】使用Python批量下载英雄联盟皮肤图片的技术实现
如何利用 Python 爬取 LOL 高清精美壁纸?
作者 | 阿拉斯加 来源 | 杰哥的IT之旅 一、背景介绍 随着移动端的普及出现了很多的移动 APP,应用软件也随之流行起来。最近看到英雄联盟的手游上线了,感觉还行,PC 端英雄联盟可谓是爆火的游戏,不知道移动端的英雄联盟前途如何,那今天我们使用到多线程的方式爬取 LOL 官网英雄高清壁纸。 二、页面分析 目标网站: https://lol.qq.com/data/info-heros.shtml#Navi 官网界面如图所示,显而易见,一个小图表示一个英雄,我们的目的是爬取每一个英雄的所有皮肤图片,全部
AI科技大本营
2023/04/14
8280
如何利用 Python 爬取 LOL 高清精美壁纸?
推荐阅读
相关推荐
用Python爬取英雄联盟(lol)全部皮肤
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档