爬取王者荣耀皮肤
调用requests模块对王者荣耀官方网站进行爬取,爬虫代码如下
爬虫代码
// #导入库
import requests
import json
import time
import os
star_time = time.time()
#确定url和headers
url = "https://pvp.qq.com/web201605/js/herolist.json"
headers = {"user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36"}
#发送请求
response = requests.get(url, headers = headers)
data = response.text
#解析数据 --json模块
#1.转换数据类型
data_1 = json.loads(data)
#2.开始解析数据
for dat in data_1:
#提取所需参数
ename = dat['ename']
cname = dat['cname']
try:
skin_name = dat['skin_name'].split('|') #切割皮肤名,计算皮肤数量
except Exception as e:
print(e)
#构建皮肤数量的循环
for skin_num in range(1,len(skin_name)+1):
#http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/141/141-bigskin-6.jpg
skin_url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + str(ename) + '/' + str(ename) +'-bigskin-' + str(skin_num) + '.jpg'
skin_data = requests.get(skin_url,headers = headers).content
#保存数据
with open('img/' + cname + '-' + skin_name[skin_num-1],'wb') as f:
print('正在下载皮肤', cname +'——' + skin_name[skin_num - 1])
f.write(skin_data)
#记录时间
end_time = time.time()
all_time = end_time - star_time
print('总共用时:',all_time,' s')
print('下载结束!')