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

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

最近南方的天气有点上头,工作(摸鱼)都开始觉得无聊了,打开手机跟朋友来一把TiMi,什么?队友居然都是v8和各种传说皮肤,这我能忍吗?别人有的,我也要有!!!
于是我就默默打开了王者荣耀官网~

寻找接口

想要开始爬虫,第一步当然是寻找数据的接口啦~
我们打开英雄资料页面,发现王者荣耀所有的英雄都在这里了,我们发现数据在源码里,我信誓旦旦的直接怼这个url,然后发现0.0,只有93个英雄,沉迷王者荣耀的我一眼就看出来了,王者荣耀一共有103个英雄呢!!!
我们右键进入源码发现确实少了十个英雄在这里插入图片描述
在这里插入图片描述
那怎么办?我们一定要知道一个道理,数据不可能凭空出现,他一定藏在某个接口里!!凭着这份坚持,我们继续找接口~
我们摁下F12,在xhr里果然看到一个接口叫做herolist,emmm这个名字就差直接用中文提示我了
在这里插入图片描述
点开发现刚好有103条数据,这不是我们需要的数据我lbw当场把这台电脑吃了!!!

爬取皮肤图片

接下来我们点进一个英雄详情,然后看一下皮肤的url,发现了什么!!
在这里插入图片描述
url中的167就是英雄ID,在上一步的接口中可以拿到
这里的规律就不用我多说了叭~

话不多说,直接上源码~

import requests
import json
import os
from pathlib import Path

def run():
    base_url = "https://pvp.qq.com/web201605/js/herolist.json"
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
    }
    base_res = requests.get(base_url,headers=headers)
    base_res.encoding='utf-8'
    json_data = json.loads(base_res.text)
    for i in json_data:
        name = i['cname']
        ename = i['ename']
        title = i['title']
        skin_name = i.get('skin_name',title)
        skin_list = skin_name.split('|')
        for j in range(len(skin_list)):
            img_name = skin_list[j]
            print(f"正在下载:{name}>{img_name}")
            img = f"http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{ename}/{ename}-bigskin-{j+1}.jpg"
            file_ = f"D:\\王者荣耀\\{name}"
            file_path = Path(file_)
            if not file_path.is_dir():
                os.mkdir(file_)
            img_res = requests.get(img,headers=headers)
            with open(f"D:\\王者荣耀\\{name}\\{img_name}.jpg",'wb') as f:
                f.write(img_res.content)
            print(f"{name}>{img_name} 下载完成~")

if __name__ == "__main__":
    run()

最后放上效果图
在这里插入图片描述
在这里插入图片描述

小妲己镇楼~ps(想一起TiMi(掉分)的朋友可以联系我QAQ)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值