用Python获取英雄联盟所有皮肤图片
先来看一张图片。
先讲解下思路,然后直接放源码,想要获取源码的同学直接拉到最下面就好。
1.爬虫第一步
首先要分析网页的DOM结构,就是英雄联盟官网,然后在下面找到英雄资料。然后在这里发现一个神奇的文件hero_list.js
,打开看一下,结构是这样的。
嗯~~~,感觉可以省了好多工作了。可以到bejson转中文,然后解析看一下,妥妥的json文件。
其实在这个文件里,我们需要的就一个heroId,因为在英雄详情页,有 1.js
, 2.js
,天真的我以为全部是按顺序排的,所以直接写了个循环去获取,后来发现不是,走过的坑就不带大家走一遍了,直接说结论,有 heroId
,接下来就好办了,在英雄详情页可以找到这个文 https://game.gtimg.cn/images/lol/act/img/js/hero/1.js,这个文件也是一个标准的json文件,里面包含英雄的基本信息,还有皮肤信息。图片路径也在这里面。好了到目前为止准备工作是做好了。
2.爬虫第二步
准备工作做好了,接下来当然是开始写代码了。思路也很简单,首先读取hero_list.js
,获取所有的heroId
,然后拼装为这样的文件路径
url="https://game.gtimg.cn/images/lol/act/img/js/hero/"+str(c["heroId"])+".js"
接下来就是挨个去读取文件找到图片地址,下载图片就好了。这里面我稍稍做了点修改,包括创建文件夹的时候,是将英雄名称作为文件夹名,皮肤名字作为图片名字,因为不做修改的话,下下来的图片全部都是big1005.jpg,big1006.jpg
,皮肤作为文件名字的话有些特殊的字符串需要去掉,文件名是不允许/
出现的,英雄皮肤名字中有个K/D/A
,具体是谁忘了,所以拿皮肤名字作为文件名的话,有些特殊字符需要去掉。好了,接下来放出完整代码。代码中写了很多注释,可以参考下。
#coding:utf8
import requests
import json
import os
import urllib.request
cur_path = os.path.abspath(os.curdir)champion = "https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js"
championobj = json.loads(requests.get(champion).text)
heroIds = championobj['hero']
# print(championobj)
# # print(jsonobj)
for c in heroIds:print(c["heroId"])url="https://game.gtimg.cn/images/lol/act/img/js/hero/"+str(c["heroId"])+".js"# 发送请求,获取响应结果response = requests.get(url)text = response.text# 打印本次请求响应内容# print(text)# 将响应内容转换为Json对象jsonobj = json.loads(text)# print(jsonobj)#获取英雄名称作为文件夹名heroname = jsonobj["hero"]["name"] print(heroname) isExists=os.path.exists(cur_path+'/所有皮肤图片/'+heroname)skinpath =cur_path+'/所有皮肤图片/'+heronameif not isExists:os.makedirs(cur_path+'/所有皮肤图片/'+heroname)# print(heroname)#获取所有的皮肤heroskins = jsonobj["skins"]# print(heroskins)for s in heroskins:skinname = str(s["name"]).replace(' ','-').replace('/','') #皮肤名字skinimage = str(s["mainImg"]) #皮肤图片路径if(len(skinimage)!=0): file_suffix = os.path.splitext(skinimage)[1]filename = '{}{}{}{}'.format(skinpath,os.sep,skinname,file_suffix)urllib.request.urlretrieve(skinimage,filename)# print(skinimage)
其实我写这个项目的时候,就是自己的一个非常偶然的想法,也是我刚学习python的一个练手项目,回头去百度上一查,呃,发现好多好多人已经写过获取英雄联盟图片的项目了,比我写的好多了。所以我的就参考一下就好。
源码已经放到上面了,公众号关不关注都行,就是佛系,就是任性。
爱游戏爱编程.jpg
用Python获取英雄联盟所有皮肤图片相关推荐
- Python获取英雄联盟的皮肤原画:新手玩家们都懵了!(一)
本爬虫是为了经验交流,如果读者需要转载,请注明出处和链接 希望:喜欢博主的读者,可以点个关注~,更多精彩内容请收藏本栏目,不定期添加干货. 代码:如果你订阅了本专栏可以直接私信我,我可以发给你完整的代 ...
- python3爬虫之多线程爬取英雄联盟所有皮肤图片
python3爬虫之多线程爬取英雄联盟所有皮肤图片 线程不要太高,容易出错,大约用时1分钟左右. import requests import json import os import thread ...
- 简易爬虫--50行代码获取英雄联盟全英雄皮肤
50行代码搞定英雄联盟LOL全英雄皮肤下载 # 下载英雄联盟全英雄皮肤 import os import requestsdef downloadPic(heroIds, titles, names, ...
- Python获取英雄联盟皮肤原画:新手玩家们都懵了!
前言 夜太美,爬虫就没那么危险 善于利用他人的UA 爬虫过程分析网页获取每一位英雄的ID值分析原画网页 结语 前言 学习py也有不少时间了,老是忘记写博客,我自己也是很无奈呀!作为会为代码而疯狂的啃书 ...
- 用Python获取英雄联盟皮肤原画?走过路过不要错过
前言 作为喜欢读书的我,也是很喜欢打游戏的,之前看到有人爬王者荣耀的皮肤的,我可是王者荣耀的老玩家了,所以我把英雄联盟给爬了. 哈哈哈,没想到吧! 在本次的爬虫教程的过程中,我也会分享给大家一些简单实 ...
- 【Python爬虫】爬取英雄联盟所有皮肤图片实现千图成像~
前文 本文主要分为两个部分 一部分是爬虫,这边是选择爬取英雄联盟官网英雄资料中的英雄皮肤图片,如下为新英雄seraphine的页面,包含英雄对应的所有皮肤: 另一部分是图片的合成,先将所有英雄皮肤图片 ...
- 爬取英雄联盟所有皮肤图片实现千图成像~
前文 本文主要分为两个部分 一部分是爬虫,这边是选择爬取英雄联盟官网英雄资料中的英雄皮肤图片,如下为新英雄seraphine的页面,包含英雄对应的所有皮肤: 另一部分是图片的合成,先将所有英雄皮肤图片 ...
- python爬取英雄联盟所有皮肤价格表_利用Python协程来爬取LOL所有英雄的皮肤高清图片...
最近有一朋友要LOL的数据进行数据分析,叫我帮他抓一下数据.突发奇想,顺便把英雄的所有皮肤下载到本地好了. PS: 安装了LOL的伙伴图片直接在LOL文件夹里面,可以百度寻找.此贴仅分享下技术思路以及 ...
- python下载英雄联盟皮肤
这里写自定义目录标题 python--下载英雄联盟皮肤图片 程序源代码 python–下载英雄联盟皮肤图片 一个简单的代码,就可以把英雄联盟英雄全部的皮肤爬取下载以及保存到mongodb数据库中 因为 ...
最新文章
- 数组,字符串,指针,内存分配机制
- Azure SQL 数据库引入了新的服务级别
- 数据去重复_字典应用实例(每行每列都要去重复值)
- 当前版本与卡刷包android_Z2 Android 6.0.1卡刷包 23.5.0.486发布,快刷起来!(来自XDA)...
- 依赖注入原理 php,PHP依赖注入原理与用法分析
- JS 给某个对象添加专属方法
- 计算机考试用英语怎么说,“全国大学生计算机等级考试一级”英语怎么说?
- threejs获取模型坐标_Threejs倒影实现解析
- 炸掉卡西欧991CNX
- html 手机楼层布局,纯html、css、javascript实现楼层跳跃式的页面布局
- php中sha1,PHP中sha1()函数和md5()函数的绕过
- 在Makefile中进行宏定义-D
- PHP之内置web服务器
- Spark 1.0.0版本号公布
- puttygen convert ppk file to xshell key file
- 为什么要使用英英词典?
- wps 甘特图_项目管理/产品研发/建设施工/计划生成项目进度甘特图表教程
- 二叉树叶子结点个数统计
- 产品速递 | 璞华易投估值管理系统,灵活多样的数据模型让估值更加精准高效!
- MYSQL间隙锁详解
热门文章
- opensuse 装机踩坑日志
- VSC/SMC(十五)——基于模糊逼近的积分滑模控制
- java文件的读和写还有使用_java中文件读和写的操作
- 4921-字符串连接 ZCMU
- iptables防火墙详解(一)
- 【寻找最佳小程序】10期:小小房贷计算器——快捷、易用,小白购房必备
- 100个人排成一列,每次排除奇数序号,求最后剩下序号
- UPC 2020年秋季组队训练赛第十四场
- Description		Type Target runtime Apache Tomcat v8.5 is not defined.
- 酒管房价代码之间的关系