python 爬取英雄聯盟皮膚并下載的示例
爬取結果:
爬取代碼
import osimport jsonimport requestsfrom tqdm import tqdmdef lol_spider(): # 存放英雄信息 heros = [] # 存放英雄皮膚 hero_skins = [] # 獲取所有英雄信息 url = ’https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js’ hero_text = requests.get(url).text # 轉為 json 格式 hero_json = json.loads(hero_text)[’hero’] path = os.getcwd() # 獲取當前文件夾路徑 workspace = os.getcwd() # 皮膚路徑 skin_path = '{}{}'.format(workspace, ’skins’) # 遍歷列表 for hero in hero_json: # 將每一個英雄的 id、name 放入一個字典中 hero_dict = {’id’: hero[’heroId’], ’name’: hero[’name’]} # 放入列表 heros.append(hero_dict) # 遍歷列表 for hero in heros: hero_id = hero[’id’] hero_name = hero[’name’] # 為每一個英雄創建一個以自己名字命名的文件夾,用來存放皮膚圖片 dir_name = skin_path + ’{}’.format(hero_name) if not os.path.exists(dir_name): os.mkdir(dir_name) # 進入文件夾 os.chdir(dir_name) # 根據每一個英雄的 id 生成皮膚信息的 url hero_skin_url = ’https://game.gtimg.cn/images/lol/act/img/js/hero/’ + hero_id + ’.js’ # 通過 url 獲取英雄的皮膚數量 skin_text = requests.get(hero_skin_url).text skin_json = json.loads(skin_text) skin_list = skin_json[’skins’] # 獲取皮膚名 hero_skins.clear() for skin in skin_list: hero_skins.append(skin[’name’].replace(’/’, ’’).replace(’’, ’’).replace(’ ’, ’’)) # 皮膚數量 skins_num = len(hero_skins) s = ’’ for i in tqdm(range(skins_num), desc=’【’ + hero_name + ’】皮膚下載’): if len(str(i)) == 1:s = ’00’ + str(i) elif len(str(i)) == 2:s = ’0’ + str(i) elif len(str(i)) == 3:pass try:# 拼接指定皮膚的 urlskin_url = ’https://game.gtimg.cn/images/lol/act/img/skin/big’ + hero_id + ’’ + s + ’.jpg’img = requests.get(skin_url) except:# 沒有炫彩皮膚 url 則跳過continue # 保存皮膚圖片 if img.status_code == 200:with open(hero_skins[i] + ’.jpg’, ’wb’) as f: f.write(img.content)if __name__ == ’__main__’: lol_spider()
以上就是python 爬取英雄聯盟皮膚并下載的示例的詳細內容,更多關于python 爬取英雄聯盟皮膚的資料請關注好吧啦網其它相關文章!
相關文章:
