国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實(shí)例

2020-02-16 11:05:22
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文使用python的第三方模塊requests爬取王者榮耀所有英雄的圖片,并將圖片按每個(gè)英雄為一個(gè)目錄存入文件夾中,方便用作桌面壁紙

下面時(shí)具體的代碼,已通過(guò)python3.6測(cè)試,可以成功運(yùn)行:

對(duì)于所要爬取的網(wǎng)頁(yè)連接可以通過(guò)王者榮耀官網(wǎng)找到,

# -*- coding: utf-8 -*-"""Created on Wed Dec 13 13:49:52 2017@author:KillerTwo"""import requestsimport oshero_list_url = 'http://pvp.qq.com/web201605/js/herolist.json'hero_skin_root_url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/'skin_base_dir = 'C://Users//lwt27//Pictures//image//heroskin//'def get_ename(hero_json):#傳入獲取到的python對(duì)象,如hero_list_json '''獲取英雄名稱對(duì)應(yīng)英雄編號(hào)的一個(gè)字典,例如{小喬:106,...}''' cname_ename = {} for hero in hero_json: cname_ename[hero['cname']] = hero['ename'] return cname_enamedef get_skin_name(hero_json): #傳入從網(wǎng)頁(yè)獲取到的json轉(zhuǎn)換為python字典的對(duì)象 '''獲取英雄名稱對(duì)應(yīng)的皮膚的所有皮膚名稱的字典,例如 {'小喬':'戀之微風(fēng)|萬(wàn)圣前夜|天鵝之夢(mèng)|純白花嫁|繽紛獨(dú)角獸',...}''' cname_skin_name = {} for hero in hero_json: cname_skin_name[hero['cname']] = hero['skin_name'] return cname_skin_namedef get_hero_skin_count(cname_skin_name): #傳入英雄名稱對(duì)應(yīng)皮膚名稱的字典 '''獲取每個(gè)英雄對(duì)應(yīng)的皮膚的個(gè)數(shù),例如{'小喬':5,...}''' cname_skin_count = {}  for item in cname_skin_name.items(): cname_skin_count[item[0]] = len(item[1].split('|')) return cname_skin_countdef get_skin_name_url(skin_base_rul,cname_skin_count,cname_ename): #傳入皮膚根地址和名稱對(duì)應(yīng)皮膚數(shù)量的字典和名稱對(duì)應(yīng)編號(hào)的字典 '''返回英雄名稱對(duì)應(yīng)的所有皮膚的url地址列表的字典,例如{小喬:[skin_url1,skin_url2],...}''' cname_url_list = {} for cname,count in cname_skin_count.items(): #print(cname) #print(count) #print(skin_base_rul) #print(cname_ename[cname]) base_url = skin_base_rul+str(cname_ename[cname])+'/'+str(cname_ename[cname])+'-bigskin-' #print(base_url) skin_url_list = [str(base_url)+str(num)+'.jpg' for num in range(1,count+1)] cname_url_list[cname] = skin_url_list return cname_url_list#print()d = get_skin_name_url(hero_skin_root_url,get_hero_skin_count(get_skin_name(hero_list_json)),get_ename(hero_list_json))#print(d)def get_cname_skin_name(cname_skin_name):#傳入名稱對(duì)應(yīng)皮膚名稱字符串的字典 cname_skin_name_dict = {}  #返回名稱對(duì)應(yīng)【皮膚名稱的列表】的字典 for cname,skin_name_list in cname_skin_name.items(): skin_list = [name for name in skin_name_list.split('|')] cname_skin_name_dict[cname] = skin_list return cname_skin_name_dict #s = get_skin_name(hero_list_json)#print(s)#f = get_cname_skin_name(s)#print(f)def get_hero_skin(cname_url_list,cname_skin_name):#傳入名稱對(duì)應(yīng)【皮膚名稱列表】的字典和名稱對(duì)應(yīng)皮膚url列表的字典 # """獲取每個(gè)英雄的圖片""" for cname,skin_url in cname_url_list.items():  if mkdir(skin_base_dir+cname):#創(chuàng)建指定目錄  os.chdir(skin_base_dir+cname) #進(jìn)入到創(chuàng)建的目錄    for i in range(len(skin_url)):  file_name = cname_skin_name[cname][i]+'.jpg'  r = requests.get(skin_url[i])  with open(file_name,'wb') as f:   f.write(r.content)#創(chuàng)建目錄def mkdir(path): # 引入模塊 import os # 去除首位空格 path=path.strip() # 去除尾部 / 符號(hào) path=path.rstrip("http://") # 判斷路徑是否存在 # 存在 True # 不存在 False isExists=os.path.exists(path) # 判斷結(jié)果 if not isExists: # 如果不存在則創(chuàng)建目錄 # 創(chuàng)建目錄操作函數(shù) os.makedirs(path) print(path+' 創(chuàng)建成功') return True else: # 如果目錄存在則不創(chuàng)建,并提示目錄已存在 print(path+' 目錄已存在') return False return if __name__ == '__main__':  hero_list_body = requests.get(hero_list_url) #請(qǐng)求英雄列表 hero_list_json = hero_list_body.json() #將英雄列表的獲取的json數(shù)據(jù)轉(zhuǎn)換為python對(duì)象 cname_ename = {} #英雄名稱對(duì)應(yīng)英雄編號(hào)的字典 cname__skin_name = {} #英雄名稱對(duì)應(yīng)皮膚名稱字符串的字典 cname_skin_count = {} #英雄名稱對(duì)應(yīng)皮膚數(shù)量的字典  cname_skin_name_str_list = get_skin_name(hero_list_json) cname_skin_name_list = get_cname_skin_name(cname_skin_name_str_list) cname_skin_count = get_hero_skin_count(cname_skin_name_str_list) cname_ename = get_ename(hero_list_json) cnam_skin_url_list = get_skin_name_url(hero_skin_root_url,cname_skin_count,cname_ename) get_hero_skin(cnam_skin_url_list,cname_skin_name_list)            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 邵武市| 浦城县| 佛学| 大连市| 廊坊市| 吉水县| 蓝田县| 鄄城县| 梅州市| 江口县| 盐边县| 宝兴县| 桐梓县| 图木舒克市| 英山县| 通江县| 陈巴尔虎旗| 伊川县| 蛟河市| 雷州市| 会同县| 盘锦市| 乐昌市| 宣威市| 象山县| 五莲县| 大渡口区| 瓦房店市| 南乐县| 阳曲县| 五大连池市| 讷河市| 新沂市| 闻喜县| 东辽县| 烟台市| 东乡族自治县| 石泉县| 章丘市| 水城县| 澎湖县|