利用python爬取LOL全皮肤

导读:本篇文章讲解 利用python爬取LOL全皮肤,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

关于

在本次的爬虫中会利用到jsonpath,如果有想了解一下jsonpath不妨点一下传送门:https://blog.csdn.net/weixin_45859193/article/details/107081107

爬虫的思路
1.目标url地址
2.获取数据
3.解析数据
4.保存数据
知道这几步,那我们就开始实战吧!

*首先
*进入lol官网
1.点击里面英雄资料库
2.按下f12
3.找到hero_list.js的名字
4.解析他的js数据
json解析库传送门:https://www.json.cn/
5.获取id
6.到达第二层url
7.打开id.js的后缀
8.解析
9.保存

思路大概就是这样具体详细看代码吧,代码注释很多。

#这是一键爬取全部皮肤
import requests
import jsonpath
import os
from urllib.request import urlretrieve
#目标url
url='https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
#模拟浏览器
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
#解析数据
req=requests.get(url,headers=headers).json()

#获取id
id_1_key=jsonpath.jsonpath(req,'$..banAudio')

#定义一个空列表
items=[]

for id_1 in id_1_key:
    #分割id,取出id
    id_2=id_1.split('ban/')[1][0:-4]
    items.append(id_2)

for itme in items:
    #皮肤层的url
    new_url='https://game.gtimg.cn/images/lol/act/img/js/hero/{}.js'.format(itme)
    
    req=requests.get(new_url,headers=headers).json()
    #跳到这个位置
    skins=req["skins"]
    #皮肤
    mainImgs=jsonpath.jsonpath(skins,'$..mainImg')
    #名字
    names=jsonpath.jsonpath(skins,'$..name')
    
    #防止报错
    try:
        #判断英雄名字是否存在
        if not os.path.exists(names[0]):
            #创建英雄名文件夹

            os.mkdir(names[0])

        for name,mainImgs in zip(names,mainImgs):
            #保存数据
            urlretrieve(mainImgs,names[0]+"/"+name+".jpg")
            print(name+"100%")

    except:
        pass
    
                    

在这里插入图片描述
在这里插入图片描述
总结
这个代码其实还是存在bug的,比如有些图片是显示不出来的,还有是下载全部图片而且不能指定下载哪个图片,这些改进的代码等我有时间就把他写出来。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/66878.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!