python爬取王者荣耀皮肤高清图
前期准备,导入模块
- requests
- json
- os
进入王者荣耀官网,进入游戏壁纸页面,f12进入开发者模式,按照下图找到这个json文件,用于对图片的数据请求。
忽略这一步也可以,代码里面会给出相应的地址,只是教你思路,授人以鱼不如授人以渔。爬取网站数据都是千变一律的,只是需要对网站结构进行解析。直接上代码
import requests
import json
import os
url1 = '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/78.0.3904.70 Safari/537.36'
}
data = requests.get(url=url1,headers=headers).json()
# print(type(data)) #json数据
file = input('请建立一个存储图片的文件夹,输入文件夹名称即可')
y = os.path.exists(file)
if y == 1:
print('该文件已存在,请重新输入')
file = input('请建立一个存储图片的文件夹,)输入文件夹名称即可')
os.mkdir(file)
else:
os.mkdir(file)
for i in range(len(data)):
ename = data[i]["ename"] #获取编号
cname = data[i]["cname"] #获取英雄
if ename == 518: # 马超没有skin_name 忽略
pass
else:
skin_name = data[i]["skin_name"].split("|") #切割图片 方便计算值
# print(skin_name)
skinnum = len(skin_name)
# print(skin_name)
for big in range(0,skinnum+1):
# 发送图片请求
img_url = "https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{}/{}-bigskin-{}.jpg".format(ename,ename,big)
# print(img_url)
response = requests.get(img_url,headers=headers)
with open(file+"/"+cname+"-"+skin_name[big-1]+".jpg","wb") as f:
f.write(response.content)
print("正在下载:{}".format(cname+"-"+skin_name[big-1]))
print('完成')
代码很简单,有兴趣的小伙伴可以对代码进行优化,只是提供一个爬取数据的思路。最后看一下效果图吧
获取王者图片采用的是很简单的一个方式,因为王者荣耀官网提供了一个json文件,图片数据都在里面,其他网站的图片数据需要对网站结构进行解析,这可能需要你懂点前端的东西。这里提供了一个思路,有兴趣的可以参考代码对其他的数据进行爬取。