简易爬虫--50行代码获取英雄联盟全英雄皮肤

50行代码搞定英雄联盟LOL全英雄皮肤下载

# 下载英雄联盟全英雄皮肤
import os
import requests


def downloadPic(heroIds, titles, names,path):
    i = 0
    for j in heroIds:
        # 创建文件夹
        os.mkdir(path + names[i] + '-' + titles[i])
        os.chdir(path + names[i] + '-' + titles[i])
        i += 1
        link = 'https://game.gtimg.cn/images/lol/act/img/js/hero/' + j + '.js'

        res = requests.get(link)  # 请求url
        res = res.json()  # 转化为json格式

        skins = res['skins']
        for k in range(len(skins)):
            imgurl = skins[k]['mainImg']
            if imgurl != '':
                # imgurl = skins[k]['chromaImg']
                # img_title = skins[k]['name'].split(' ')[0]
                im = requests.get(imgurl)  # 请求图片url
                if im.status_code == 200:
                    open(str(k) + '.jpg', 'wb').write(im.content)  # 写入文件
                else:
                    print(link)
                    print(imgurl)


def getData(path):
    url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
    herolist = requests.get(url)  # 获取英雄列表json文件
    herolist = herolist.json()  # 转化为json格式
    herolist_json = herolist['hero']

    heroIds = list(map(lambda x: x['heroId'], herolist_json))  # 提取英雄的编号
    titles = list(map(lambda x: x['title'], herolist_json))  # 提取英雄的名称
    names = list(map(lambda x: x['name'], herolist_json))  # 提取英雄的别名

    downloadPic(heroIds, titles, names,path)


if __name__ == '__main__':
    path = "C:\\Users\\admin\\Desktop\\lol\\" # 创建文件夹
    os.mkdir(path)
    getData(path)

思路:该页面抓取的内容实际上是通过请求js拿到的内容进行页面填充,故F12去分析页面请求js,拿到链接,去请求,处理js返回结果就可以了。

注:菜鸟新学的python,请大神们指教

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值