python爬取 lol全皮肤原画

这官网点击查看源码发现 毛都没有。。
这能这样,进入这个页面并点击第一个英雄
在这里插入图片描述
发现
在这里插入图片描述
然后查看第二个英雄同个地方的url
在这里插入图片描述
发现除了这个数字其他一样 嘿嘿。。 遍历全英雄的问题解决了
然后查看服务器返回的信息
在这里插入图片描述
在这里插入图片描述
都是明文的json数据,太棒了
到这里其实需要的信息已经收集完了,可以写代码了 ,先说一下实际运行碰到的问题:
url编号不规律 不是146 而是555
其中有的炫彩皮肤没有url
好了附上代码:


import os
import json
import requests
def get_url(url, hander): #获取页面数据
    try:
        r = requests.get(url, headers=hander, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except requests.exceptions.ConnectTimeout:
        print("(1)连接超时")
        return ""
    except requests.exceptions.HTTPError as e:
        print(e)
        return ""

def prasing_page(html, hander, n):
    s = 0 #定义变量方便一会儿输出进度条
    py_data = json.loads(html) #json数据转换成python数据
    hero_skins_list = py_data['skins']
    os.mkdir('O:\lol_hero_jpg\\'+hero_skins_list[0]['heroName']+'--'+hero_skins_list[0]['heroTitle'])  #创建文件夹
    os.chdir('O:\lol_hero_jpg\\'+hero_skins_list[0]['heroName']+'--'+hero_skins_list[0]['heroTitle'])  #进入文件夹
    for i in hero_skins_list:
        try: #如果有问题跳过本次循环进行下一次
            if i['mainImg'] == "": #如果图片url为空则跳过本次循环
                continue
            s = s + 1
            with open(i['name']+'.jpg', 'wb') as f:
                r = requests.get(i['mainImg'], headers=hander, timeout=30)
                f.write(r.content)
                f.close()
                print("\r当前进度>>>第 {} 位英雄 {} >>>{:.0f}%----------总进度{:.0f}%".format(n, hero_skins_list[0]['heroTitle'], s * 100 / len(hero_skins_list), n * 100/146), end="")
        except:
            continue
def main():
    hander = {"User-Agent": "Mozilla/5.0"}
    hero_number = 555
    n = 0 #变量表示第几位英雄
    for i in range(hero_number):
        try:
            n = n+1
            url = "https://game.gtimg.cn/images/lol/act/img/js/hero/"+str(i+1)+".js"
            html = get_url(url, hander)
            prasing_page(html, hander, n)
        except:
            n = n - 1
            continue
main()

运行效果:
在这里插入图片描述
在这里插入图片描述
最后附上几张比较喜欢的英雄原画^_^
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值