额,不好意思标题后面少了"高清壁纸"几个字,既然进来了也应该不亏,本文一键撸取427张王者荣耀皮肤高清壁纸并且打包好了,文末查看获取方式。并且手把手教你撸取所有壁纸的全过程。

开篇

前几天看到同事的桌面壁纸是王者荣耀的炫酷后羿皮肤,觉得十分帅气,于是想自己也弄一个,可是王者皮肤这么多一个个点网页找太费劲,何不一把撸下来一起看呢,于是想着把所有的英雄皮肤都下载到本地的一个目录下面慢慢选多好,说干就干…那我们就开始吧。

网页分析

首先,我们进去王者荣耀官网,点进“英雄资料”界面:

按F12打开调试台,随便点击一个英雄如后翌,找到英雄原皮肤的图片地址:

鼠标在英雄的不同皮肤头像上滑动,发现图片的url地址会发生变化,但是只有最后一个数字在改变,进一步发现皮肤号是从1,2,3…一直往后编的。好了找到了图片的编码规律,下面我们再看看不同英雄的图片url地址有什么不同。

我们回到“英雄资料”界面,点击另外一个英雄露娜,对比一下后羿与露娜英雄壁纸的url地址,发现仅仅有一个数字是不相同的,后羿是169,露娜是146,如下所示。因此我们猜测这个数字应该是代表的英雄编号。

# 后羿图片url: 'game.gtimg.cn/images/yxzj/img201606/skin/heroinfo/169/169-bigskin-1.jpg'
# 露娜图片url: 'game.gtimg.cn/images/yxzj/img201606/skin/heroinfo/146/146-bigskin-1.jpg'

继续回到英雄资料的界面,按F5刷新界面,看到有一个herolist.json的文件:

将herolist.json文件下载下来打开一看如下图,发现后翌的编号就是169。至此,我们已经完成了我们的分析工作,图片的url地址以及英雄的编号还有皮肤名称也都有了,下面来把照片打包撸下来吧。

编码实现

首先下载herolist.json文件,获取文件内容,并解析:

# 英雄编号及皮肤信息
hero_list_url = 'https://pvp.qq.com/web201605/js/herolist.json'
# 发送get请求获取数据
hero_list = requests.get(hero_list_url)
# 将获取json数据
hero_list_json = hero_list.json()

进行英雄编号以及图片编号的url拼接:

http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{}/{}-bigskin-{}.jpg'.format(hero_num, hero_num, pic_num),其中hero_num表示英雄编号,pic_num表示图片编号,从1开始。

解析herolist.json,并进行图片下载,为了防止被检测出来是爬虫,每次下载图片随机间隔0-1秒之间的时间,图片存储名称为英雄名_皮肤名称.jpg

for each_hero in hero_list_json:hero_name = each_hero['cname'] # 获取英雄名称hero_num = each_hero['ename']  # 获取英雄编号# 获取该英雄的皮肤名称列表skin_name_list = each_hero.get('skin_name').split('|')if each_hero.get('skin_name') else []for i in range(10):pic_num = i + 1 # 图片编号是从1开始的# # 有些图片在json文件中没写皮肤名称, 就将皮肤名称标为未知skin_name = skin_name_list[i] if i <= len(skin_name_list)  else '未知{}'.format(i)pic_link = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{}/{}-bigskin-{}.jpg'.format(hero_num, hero_num, pic_num)request_res = requests.get(pic_link)img_path_name = os.path.join(save_path_pre,'{}_{}.jpg'.format(hero_name, skin_name))if request_res.status_code == 200:with open(img_path_name, 'wb') as f:f.write(request_res.content)all_skin_counts += 1print('第{}张下载成功: {}|{}'.format(all_skin_counts,hero_name, skin_name))time_rand = random.random() time.sleep(time_rand) #随机间隔0-1秒的时间,防止被检测出来是爬虫

完整代码如下

import os
import requests
import time
import random
# 英雄编号及皮肤信息
hero_list_url = 'https://pvp.qq.com/web201605/js/herolist.json'
# 发送get请求获取数据
hero_list = requests.get(hero_list_url)
# 将获取json数据
hero_list_json = hero_list.json()# 存储目录,须在本地创建
save_path_pre = 'F:/wzry_heropics'
if not os.path.exists(save_path_pre):os.makedirs(save_path_pre)
all_skin_counts = 0
for each_hero in hero_list_json:hero_name = each_hero['cname'] # 获取英雄名称hero_num = each_hero['ename']  # 获取英雄编号# 获取该英雄的皮肤名称列表skin_name_list = each_hero.get('skin_name').split('|')if each_hero.get('skin_name') else []for i in range(10):pic_num = i + 1 # 图片编号是从1开始的# # 有些图片在json文件中没写皮肤名称, 就将皮肤名称标为未知skin_name = skin_name_list[i] if i <= len(skin_name_list)  else '未知{}'.format(i)pic_link = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{}/{}-bigskin-{}.jpg'.format(hero_num,hero_num,pic_num)request_res = requests.get(pic_link)# 图片存储路径img_path_name = os.path.join(save_path_pre,'{}_{}.jpg'.format(hero_name, skin_name))if request_res.status_code == 200:with open(img_path_name, 'wb') as f:f.write(request_res.content)all_skin_counts += 1print('第{}张下载成功: {}|{}'.format(all_skin_counts,hero_name, skin_name))time_rand = random.random()time.sleep(time_rand) #随机间隔0-1秒的时间,防止被检测出来是爬虫

好了,爽了,终于搞定了。最终成功撸下了全部的427张高清全英雄皮肤照片,成果如下:


哈哈,终于可以方便的选择自己喜欢的高清皮肤当桌面啦~~~

特别说明:本文仅供技术交流,切勿用作非法或者商业用途。

壁纸 获取方式:为方便喜欢王者荣耀高清英雄壁纸的朋友获取图片 ,所有427张高清皮肤壁纸均已为你打包准备好,扫码关注下面公众号,回复’wzry’即可获取!你也可以选择到喜欢的高清英雄皮肤壁纸哦~~~

Python教你一键获得【王者荣耀全皮肤】~~~相关推荐

  1. python爬取王者_python爬取王者荣耀全皮肤的简单实现代码

    相信现在很多人都喜欢玩王者荣耀这款手游,里面好看的皮肤令人爱不释手.那么你有没有想过把王者荣耀高清皮肤设置为壁纸,像下面这样 今天就来教大家如何利用python16行代码,实现王者荣耀全部高清皮肤的下 ...

  2. Python爬虫——王者荣耀全皮肤拉取

    文章目录 Python爬虫--王者荣耀全皮肤拉取 资源地址 HeroScrapy.py 运行上面的代码即可 注意点 Python爬虫--王者荣耀全皮肤拉取 开门见山,话不多说 资源地址 英雄信息列表: ...

  3. Python爬虫下载王者荣耀全皮肤

    python爬虫下载王者荣耀全皮肤 import requests import os from time import timestart = time() headers = {'User-Age ...

  4. 一键爬取王者荣耀全皮肤高清图片【方法一】

    文章目录 前言 一.爬虫是什么? 二.使用步骤 1.引入库 2.访问的URL 3.爬取思路 三.皮肤URL(需要手动找出) 完整代码 四.效果展示 总结 前言 相信很多小伙伴们都喜欢玩王者荣耀这款MO ...

  5. 【云云怪】第5个项目:爬取王者荣耀全皮肤图片

    [项目预览] [创作背景] 自上一个项目(项目4)功败垂成之后,我花了挺多时间调试,找了一个信任我的小伙伴,帮我测试,我到底能不能通过小程序偷到他电脑里的东西.直到学到了爬虫,我对偷东西小程序的热情一 ...

  6. Python爬虫——手把手教你爬取王者荣耀英雄皮肤

    大家好!我是霖hero 大家知道目前最火的手游是哪个嘛,没错,就是王者荣耀,这款手游想必大家都听过或者玩过吧,里面有106个英雄,几百个英雄皮肤,今天我来手把手教你们把几百个皮肤都爬取下来. 目录 P ...

  7. python爬取王者荣耀全皮肤,漫客的福利!

    先明确思路: 寻找皮肤图片地址 1 找到英雄列表 2 找到英雄皮肤地址 下载图片 1 英雄有几个皮肤 2 下载文件 进入正题:如何爬取王者荣耀的英雄皮肤照片? 分为两步: 找到皮肤图片的地址 下载图片 ...

  8. Python爬虫基础--爬取王者荣耀英雄皮肤图片

    文章目录 思路分析 涉及到的知识点 Json数据说明 `herolist.json`:英雄列表 皮肤图片尺寸分析 程序说明 代码 结果(数据)分析 声明 这里只是简单介绍主要内容,详见github,仓 ...

  9. python爬取王者荣耀全皮肤高清无水印图片

    前期准备:安装requests库,我猜你可能需要: Python网络爬虫与信息提取笔记01-Requests库入门 Windows下安装pip和换源 import os import requests ...

  10. 一键爬取王者荣耀全皮肤高清图片【方法二】

    爬取王者荣耀官网皮肤[爬虫] 上次我们讲了爬虫的定义以及爬取王者荣耀皮肤的思路. 今天我们换一种方式来爬取同样的内容.大体上思路和方法一相同. 方法一传送门:方法一 方法二 # 网址:https:// ...

最新文章

  1. 3页论文被引用17915次!88岁物理学泰斗温伯格去世,霍金《时间简史》受他启发...
  2. python 类-Python的类
  3. 跨境电商自建站后台系统原型rp_外贸业务员和跨境电商运营哪个好,跨境电商可以去哪个网站学...
  4. Ubuntu和Windows默认系统启动顺序修改
  5. 软件测试工程师笔试试题
  6. maven使用OracleDB jdbc Driver
  7. 外星人进化_深层分析宇宙常数对生命形成进化的影响,外星人或许根本就“不是人”!...
  8. iphone7配置_西安苹果售后维修教您iphone7发热严重、耗电快怎么解决?
  9. vue表单中批量导入功能_spring boot mybatis+ vue 使用POI实现从Excel中批量导入数据
  10. 怎么让电脑屏幕一直亮着_电脑屏幕总是闪烁?试试这个方法
  11. angular1.x 中重要指令介绍($eval,$parse和$compile)
  12. 【错误分析】NX error status: 32
  13. mysql 1690_mysql error BIGINT UNSIGNED value is out of range in 解决办法
  14. Linux关键字查询
  15. 分析力学-清华大学基科班课件
  16. 什么是蜜罐?底层原理是什么?
  17. web前端布局篇(切图)
  18. 西北大环线旅游 7 天、2400 公里的所见所闻
  19. 优雅的解决uniapp 页面多个组件调用同一个生命周期时的冲突
  20. Spring Cloud Finchley OpenFeign的重试配置相关的坑

热门文章

  1. 网络爬虫:Beautiful Soup库信息组织与提取
  2. 第13期 《仰望星空,脚踏实地》 12月刊
  3. 用 mkcert 搭建本地开发受信 HTTPS 证书环境
  4. 手机怎样识别图片中的文字?
  5. java 解析dojo_Dojo入门三种HelloWorld!
  6. Android跑马灯进度条,table数据跑马灯效果
  7. POI实现Excel文件加密
  8. 在线客服系统对接微信小程序(客服消息推送)
  9. 在vue中使用unity3D实现webGL将要呈现的效果
  10. 3.5 Python 实例4-文本进度条