Python爬取王者荣耀全英雄全皮肤图片

2022-08-10,,,,

先上效果图

附上源码

import requests
import pprint
import os
# 1. 分析目标网页,确定爬取的url路径
base_url = 'https://pvp.qq.com/web201605/js/herolist.json'
# herders请求字段,为的是模拟用户的请求
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
    # user-agent是用户身份的标识,它包含浏览器的名称,版本,操作系统信息,浏览器内核信息
    # user-agent是最常见、最起码的反爬字段,可以很好地把我们的代码伪装成浏览器用户
}
# 2. 发送请求 --- requests 模拟浏览器发送请求,获取响应数据
response = requests.get(url=base_url,headers=headers)
data_list = response.json()
#pprint.pprint(data_list)

# 3. 解析数据 --- json模块:把json字符串转化成python可交互数据类型
for data in data_list:
    heroName = data['cname'] #英雄名称
    heroId = data['ename'] #英雄的id值
    try:
        heroSkinList = data['skin_name'].split('|') #英雄的所有皮肤名称
    except Exception as e:
        #print(e)
        # 手动为我们的马超添加skin_name
        heroSkinList = ['冷晖之枪','幸存者'] # 注意原皮肤在前
    print(heroName,heroId,heroSkinList)
    # 构建皮肤数量的循环
    for skin in range(1,len(heroSkinList) + 1):
        # http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/英雄的id值/英雄的id值-bigskin-皮肤编号.jpg
        img_url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/'+str(heroId)+'/'+str(heroId)+'-bigskin-'+str(skin)+'.jpg'
        #print(img_url)
        #请求图片数据,因为它是一个二进制数据,所以我们需要调用content获取
        img_data = requests.get(url=img_url,headers=headers).content
        # 4. 保存数据 --- 保存在目标文件夹中
        path = '王者荣耀'
        if not os.path.exists(path):
            os.mkdir(path)
        with open('王者荣耀\\'+heroName+"-"+heroSkinList[skin-1]+".jpg",mode='wb') as f:
            print("正在下载皮肤:",heroName+"-"+heroSkinList[skin-1])
            f.write(img_data)
            f.close()

创作不易,点个赞吧!!

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:https://blog.csdn.net/wsad861512140

本文地址:https://blog.csdn.net/wsad861512140/article/details/107062159

《Python爬取王者荣耀全英雄全皮肤图片.doc》

下载本文的Word格式文档,以方便收藏与打印。