【Python应用】爬取LOL皮肤图片(面向过程编程)

Honey ·
更新时间:2024-11-15
· 781 次阅读

LOL官网英雄资料:https://lol.qq.com/data/info-heros.shtml

分析网站

找到英雄列表的json文件(hero_list.js),对应的url(重要)。
在这里插入图片描述
找到英雄列表的json文件(hero_list.js),对应的url(重要)。点击preview预览窗体,看到里面是json的格式,对应有hero_Id,name。

代码部分 获取英雄和id def get_hero(): url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js' res = requests.get(url=url).json() for hero in res['hero']: hero_id = hero['heroId'] # skin_url = 'https://game.gtimg.cn/images/lol/act/img/js/hero/'+hero_id+'.js' skin_url = f'https://game.gtimg.cn/images/lol/act/img/js/hero/{hero_id}.js' 获取皮肤图片并以英雄名字保存 def get_link(url): res = requests.get(url=url).json() for skin in res['skins']: info = skin.get('mainImg') if not info: # 如果不是皮肤,则跳过当前循环 continue item = {} item['heroName'] = skin['heroName'] # 名字中有 / 替换成 _ item['skinName'] = skin['name'].replace('/', '_') item['link'] = skin['mainImg'] # 英雄名字的文件夹 hero_path = './imgxx/' + item['heroName'] + '/' if not os.path.exists(hero_path): # 如果文件夹不存在,则创建 os.makedirs(hero_path) res = requests.get(url=item['link']) # 以皮肤名命名图片 with open(hero_path + item['skinName'] + '.jpg', 'wb') as f: f.write(res.content) 层层调用,if name == ‘main’: 是以本文件名为主函数,调用本地的函数 if __name__ == '__main__': get_hero() 秀战绩!在这里插入图片描述 全部代码: import requests import os def get_hero(): url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js' res = requests.get(url=url).json() for hero in res['hero']: hero_id = hero['heroId'] # skin_url = 'https://game.gtimg.cn/images/lol/act/img/js/hero/'+hero_id+'.js' skin_url = f'https://game.gtimg.cn/images/lol/act/img/js/hero/{hero_id}.js' get_link(skin_url) def get_link(url): res = requests.get(url=url).json() for skin in res['skins']: info = skin.get('mainImg') if not info: # 如果不是皮肤,则跳过当前循环 continue item = {} item['heroName'] = skin['heroName'] # 名字中有 / 替换成 _ item['skinName'] = skin['name'].replace('/', '_') item['link'] = skin['mainImg'] # 英雄名字的文件夹 hero_path = './imgxx/' + item['heroName'] + '/' if not os.path.exists(hero_path): # 如果文件夹不存在,则创建 os.makedirs(hero_path) res = requests.get(url=item['link']) # 以皮肤名命名图片 with open(hero_path + item['skinName'] + '.jpg', 'wb') as f: f.write(res.content) print(item['skinName']) if __name__ == '__main__': get_hero()
作者:被大笨猪拱了的大白菜



面向过程 图片 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号