爬虫day1作业:下载英雄皮肤图片
补充OS模块:
import os
# 创建文件夹 若文件夹已经存在会报错
# os.mkdir('files\test')
# 判断文件是否存在
# os.path.exists('path')
if not os.path.exists('files\test'):
os.mkdir('files\test')
"""
Author: yuting
Create Time: 2023/3/28 09:22
软件: PyCharm
键盘敲烂,月薪过万!
"""
import requests
import os
# 1.获取所有英雄ID
def get_all_hero_id():
response = requests.get('https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js')
result = response.json()
return [x['heroId'] for x in result['hero']]
# 下载皮肤对应的图片
def download(hero_name, skin_name, skin_url):
# 创建英雄对应的文件夹
if not os.path.exists(f'files/{hero_name}'):
os.mkdir(f'files/{hero_name}')
# 下载图片
response = requests.get(skin_url)
with open(f'files/{hero_name}/{skin_name}.jpg', 'wb') as f:
f.write(response.content)
print(f'----------{skin_name}下载完成---------------')
# 2. 获取每个英雄的皮肤地址
def get_hero_skin_url(hero_id):
url = f'https://game.gtimg.cn/images/lol/act/img/js/hero/{hero_id}.js'
response = requests.get(url)
for x in response.json()['skins']:
hero_name = x['heroTitle']
skin_name = x['name'].replace('/', '')
skin_url = x['mainImg'] if x['mainImg'] else x['chromaImg']
download(hero_name, skin_name, skin_url)
if __name__ == '__main__':
for x in get_all_hero_id():
get_hero_skin_url(x)