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

我们通过分析英雄联盟官网页面,进入到资料库页面,分析英雄所在的页面

这里有两种类型的同样的图片,一种是大图片的,一种是类似头像的小图片。我们这里抓取大图片

拿到几种图片链接分析https://game.gtimg.cn/images/lol/act/img/skin/big5000.jpg可以发现所有英雄皮肤链接url除了数字之前的都一样,而且后面的数字都是以英雄id+三位数拼接而成(三位数从000开始,但是有的英雄并不是就是依次排列,可能000,,001,002会直接跳到013)

由于英雄联盟官网也是做了反爬措施了的,所有图片也是使用局部加载的方式,在开发者工作中,可以找到一个js文件,里面包含了英雄id与英雄的对应关系

通过请求该js,获取其源代码,使用正则表达式将其提取出来,用于后面的url拼接

代码如下:

import requests
import re
import json
# 请求js数据,获取英雄对应的代码
#       "92": "Riven",
#         "68": "Rumble",
#         "13": "Ryze",
#         "113": "Sejuani",
def path_js(url):
    # 通过js源码,获取字节数据
    response = requests.get(url).content.decode(‘gb2312‘)
    req = ‘"keys":(.*?),"data"‘
    # 将字符串转成正则对象
    # req = re.compile(req)
    list_js = re.findall(req,response)
    dict_js = json.loads(list_js[0])
    # print(dict_js)
    # print(len(dict_js))
    return dict_js

‘https://game.gtimg.cn/images/lol/act/img/skin/big21003.jpg‘
# LOL 皮肤链接除了前面的https://game.gtimg.cn/images/lol/act/img/skin/big都一样外,后面的数字采用
# 英雄的代码+三位数(从000开始,但是中间可能会跳,如001,002,003,012,013...)

# 拼接图片url
def path_url(dict_js):
    list_pic = []
    for key in dict_js:
        # 假设后面的数字到25,后面通过url访问是否成功判断是否有效
        for item in range(25):
            item = str(item)
            # item一位数拼接两个0
            if len(item) == 1:
                hero_item = ‘00‘ + item
            # item一位数拼接一个0
            elif len(item) == 2:
                hero_item = ‘0‘ + item
            # 拼接完整数字
            numbers_str = key + hero_item
            # print(numbers_str)
            # 拼接完整图片url
            url = ‘https://game.gtimg.cn/images/lol/act/img/skin/big‘ + numbers_str + ‘.jpg‘
            # 将所有拼接的图片url保存至列表
            list_pic.append(url)
    return list_pic

# 拼接图片名称
def name_pic(dict_js,path):
    list_file_path = []
    for name in dict_js.values():
        for item in range(25):
            file_path = path + name + str(item) + ‘.jpg‘
            list_file_path.append(file_path)
    return list_file_path

# 保存图片
def save_pic(list_pic,list_file_path):
    for item in range(len(list_pic)):
        res = requests.get(list_pic[item])
        if res.status_code == 200:
            print(‘正在下载%s‘%list_file_path[item])
            with open(list_file_path[item],‘wb‘)as fp:
                fp.write(res.content)
    print(‘所有皮肤全部下载完毕!‘)

if __name__ == ‘__main__‘:
    url = ‘https://lol.qq.com/biz/hero/champion.js‘
    path = ‘LOL\\‘
    # 获取英雄对应id,返回字典数据
    dict_js = path_js(url)
    # 拼接完整的图片url,返回列表数据
    list_pic = path_url(dict_js)
    # 拼接完整的图片保存路径,返回列表数据
    list_file_path = name_pic(dict_js,path)
    # 根据图片url列表和路径列表,保存图片
    save_pic(list_pic,list_file_path)

原文地址:https://www.cnblogs.com/ilovepython/p/11540017.html

时间: 2024-11-08 02:01:40

爬取英雄联盟所有英雄皮肤的相关文章

python爬虫-20行代码爬取王者荣耀所有英雄图片,小白也轻轻松松

1.环境 python3.6 需要用到的库: re.os.requests 2.简介 王者荣耀可以算得上是比较受欢迎的手游之一了,应该有不少的人都入坑过农药,我们今天的目的就是要爬取王者荣耀的高清英雄壁纸,包括这些英雄的皮肤,不废话了,go! 3.分析 首先,我们打开王者荣耀的英雄资料 然后,日常F12打开浏览器的开发者工具 可以看到这里返回了一个json数据,里面包含了英雄的名字(cname),皮肤名字(skin_name),英雄id(ename)这个id后面的皮肤有用 具体某一个英雄的网址,

python爬取opgg的LOL英雄数据

完整源码链接: https://pan.baidu.com/s/1CWLXwlJGcq01jww8HXu3zg   (加入了部分图形界面) 由于爬取结果都是英语的版本,所以需要翻译. 另外的两个txt文件是翻译,已经完成了大部分基础的翻译,如想需要添加可以按格式填写 运行效果: 代码思路和步骤: 首先第一步,是获得所有英雄的名字和对应的url: 先观察网页的html,就能发现 <div>的data-champion-key属性中的就是英雄的名字,然后<a>的href属性就是英雄对应

Python练手项目:20行爬取全王者全英雄皮肤

引言 ? ?王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了.我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成. ? ?文中源代码在文章末尾,可自行复制粘贴. 准备工作 ? ?爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: ? ?我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片地址: ? ?接着,我们切换一下英雄的

20行Python代码爬取王者荣耀全英雄皮肤

引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了.我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成. 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片地址: 接着,我们切换一下英雄的皮肤,会发现图片地址没有明显的变化,只是最后的数字序号改变了,我们将两

英雄联盟模型查看器

本人非常喜欢英雄联盟这个游戏,希望英雄联盟也能出个类似war3的世界编辑器那样的工具,可以利用英雄联盟的场景和模型制作自定义游戏.可是,官方是不太可能出这种工具的.于是,萌生了个制作英雄联盟世界编辑器的想法. 想制作类似世界编辑器的工具,第一步是要提取英雄联盟中英雄的模型和动画. 在网上搜索有关英雄联盟的资料,偶然间发现了lolking这个网站,上面提供了所有英雄(包含全皮肤)和中立生物的模型和动画,我感觉我都第一步就要完成了. 费了一周的时间,制作了英雄联盟模型查看器. 下面给出英雄联盟模型查

用Python3Request爬取英雄联盟皮肤、单线程爬取

和王者荣耀相类似 链接:https://www.cnblogs.com/wxzbk/p/10981098.html """ Hero_LOL """ import requests import re import threading def hero(hero_name, hero_num): #统一前戳 h_l = "https://ossweb-img.qq.com/images/lol/web201310/skin/big&qu

爬虫小程序(爬取英雄联盟的英雄皮肤)

一.爬虫流程: 1.明确目标:url = https://daoju.qq.com/lol/list/17-0-0-0-0-0-0-0-0-0-0-00-0-0-1-1.shtml?ADTAG=innercop.lol.SY.shoppinglist_new_17 2.判断数据类型:动态/静态(这里是动态类型,是通过JS渲染的) 备注:如何来判断数据类型?是通过源码来判断的,如果网页源码中可以找到我们需要爬取的数据,那么就代表是静态,可以通过访问网页后结合正则就可以获取数据, 如果网页源码找不到

NodeJS 爬虫爬取LOL英雄联盟的英雄信息,superagent+cheerio+async

1.模块使用 (1)superagent:Nodejs中的http请求库(每个语言都有无数个,java的okhttp,ios的afnetworking) (2)cheerio:Nodejs中的html解析库(每个语言基本都有..) (3)async:Nodejs中的同/异步并发函数执行库(这个非常牛,其他语言同类型的不多) 2.爬取内容 多玩的英雄联盟英雄页面,通过解析页面内每个英雄的URL,然后并发请求英雄的详细数据,提取需要的数据得到结果 http://lol.duowan.com/hero

用Python爬取&quot;王者农药&quot;英雄皮肤

0.引言 作为一款现象级游戏,王者荣耀,想必大家都玩过或听过,游戏里中各式各样的英雄,每款皮肤都非常精美,用做电脑壁纸再合适不过了.本篇就来教大家如何使用Python来爬取这些精美的英雄皮肤. 1.环境 操作系统:Windows / Linux Python版本:3.7.2 2.需求分析 我们打开<王者荣耀>官网,找定位到英雄列表的页面 可直接点此链接: https://pvp.qq.com/web201605/herolist.shtml 在这个网页中包含了所有的英雄,头像及英雄名称.点击其