admin管理员组

文章数量:1619275

文章目录

    • 思路分析
    • 完整代码
    • 效果展示

思路分析

首先,进入英雄联盟的官网资料站。

通过抓包分析,我们可以得到每个英雄的ID。


随便找个英雄点开,进入详情页面。

查看页面的源代码,我们可以定位到图片的URL链接。

但是这些图片的URL链接都是通过js加载的,我们直接请求这个页面是找不到的,于是,继续进行抓包分析。


找到图片的URL链接后,我们就可以开始写代码爬取图片了。

完整代码

# !/usr/bin/env python
# —*— coding: utf-8 —*—
# @Time:    2020/1/29 9:44
# @Author:  Martin
# @File:    lol_skin.py
# @Software:PyCharm
import requests
import json
import os
url1 = 'https://game.gtimg/images/lol/act/img/js/heroList/hero_list.js'
raw_url2 = 'https://game.gtimg/images/lol/act/img/js/hero/%s.js'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'}
r = requests.get(url1, headers=headers)
hero = json.loads(r.text)['hero']
for it in hero:
    heroId = it['heroId']
    name = it['name']
    url2 = raw_url2 % heroId
    response = requests.get(url2, headers=headers)
    skin_data = json.loads(response.text)['skins']
    i = 1
    for item in skin_data:
        if item['mainImg'] != "":
            skin_url = item['mainImg']
            if not os.path.exists('./result/LoLSkin/'+name):
                os.makedirs('./result/LoLSkin/'+name)
            result = requests.get(skin_url, headers=headers)
            with open('./result/LoLSkin/'+name+'/'+name+str(i)+'.jpg', 'wb') as f:
                f.write(result.content)
                print(name+str(i))
                i += 1

效果展示



本文标签: 皮肤英雄联盟图片