程序笔记   发布时间:2022-07-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了⚡王者农药皮肤图片获取!⚡大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

⚡王者农药皮肤图片获取!⚡

  • 一、前言
  • 二、环境准备
  • 三、具体实现
    • 1、所有英雄信息获取
    • 2、分析图片url
    • 3、具体实现
    • 4、结果
  • 四、最后


完成目标:   获取王者官网英雄介绍页面高清图片


一、前言

  王者荣耀大家都玩过吧࿰c;没玩过的也应该听说过࿰c;作为时下最火的手机MOBA游戏࿰c;咳咳࿰c;好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤!

二、环境准备

编辑器:pycharm 用到的库:requests、lxml

三、具体实现

1、所有英雄信息获取@H_489_56@

  打开官网࿰c;进入英雄资料页面࿰c;通过开发者工具࿰c;得到所有的英雄的数据

⚡王者农药皮肤图片获取!⚡

  每一个英雄资料为json格式࿰c;共106个࿰c;其中一个显示如下:

⚡王者农药皮肤图片获取!⚡

  解码后࿰c;名称如下:

{
	'cname': '廉颇', # 英雄名称
	 'ename': 105, # 英雄编号
	 'hero_type': 3, # 英雄类型
	 'new_type': 0, 
	 'skin_name': '正义爆轰|地狱岩魂', # 英雄皮肤名称
	 'title': '正义爆轰' # 当前皮肤
 }

  这里主要需要的是 cname、ename、skin_name࿰c;skin_name用于获取皮个数

2、分析图片url@H_489_56@

  打开一个英雄的详情页࿰c;打开开发者工具࿰c;以为云樱为例࿰c;一共两个皮肤࿰c;分别在两个li标签中࿰c;因此循环两次就可以全部拿到࿰c;也就是为什么之前要获取skin_name的原因

⚡王者农药皮肤图片获取!⚡

  观察url࿰c;寻找规律࿰c;其中前面的【//game.gtimg.cn/images/yxzj/img201606/skin/hero-info/】都是固定的࿰c;后面的是每个英雄的enamec;然后ename-bigskin-skin_name的长度࿰c;因此࿰c;只要对这个url进行请求就可以得到高清壁纸

//game.gtimg.cn/images/yxzj/img201606/skin/hero-info/538/538-bigskin-1.jpg

//game.gtimg.cn/images/yxzj/img201606/skin/hero-info/538/538-bigskin-2.jpg

3、具体实现@H_489_56@
from pprint import pprint
import requests

if __name__ == '__main__':
    headers = {
        "user-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Edg/92.0.902.84"
    }
    baseurl = 'https://pvp.qq.com/web201605/js/herolist.json'
    r = requests.get(url=baseurl, headers=headers)
    data = r.json() # 英雄资料࿰c;包含cname、ename、skin_name
    for i in data:
        pprint(i) # 使用pprint打印数据原始格式
        
        cname = i["cname"]
        ename = i["ename"]
        
        try:
            skin_name = i["skin_name"].split("|") # 其中马超没有skin_name
        except Exception as e:
            print(e)
            
        for skin_num in range(1, len(skin_name) + 1):
            sk_url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + str(ename) + "/" + str(
                ename) + "-bigskin-" + str(skin_num) + ".jpg" # url拼接
            try:
                data = requests.get(url=sk_url, headers=headers).content
                with open("img/" + cname + "-" + skin_name[skin_num - 1] + ".jpg", "wb")as fp:
                    fp.write(data)
            except Exception as e :
                print(e)
        print(ename,"下载完成...")

4、结果@H_489_56@

⚡王者农药皮肤图片获取!⚡

四、最后

  中间会有skin_name异常࿰c;一定要捕获异常࿰c;保证程序一直执行下去,并且出现了几次IP异常࿰c;下次尝试使用代理。

大佬总结

以上是大佬教程为你收集整理的⚡王者农药皮肤图片获取!⚡全部内容,希望文章能够帮你解决⚡王者农药皮肤图片获取!⚡所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。