Python爬取王者荣耀全英雄全皮肤图片
程序员文章站
2023-11-29 11:37:40
先上效果图附上源码import requestsimport pprintimport 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, li...
先上效果图
附上源码
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
上一篇: CSS3 二级导航菜单的制作的示例