最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年12月14日 09:35:50   作者:KillerTwo  
下面小編就為大家分享一篇用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨想過來看看吧

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

下面時具體的代碼,已通過python3.6測試,可以成功運行:

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

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 13 13:49:52 2017
@author:KillerTwo
"""
import requests
import os
hero_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對象,如hero_list_json
 '''獲取英雄名稱對應(yīng)英雄編號的一個字典,例如{小喬:106,...}'''
 cname_ename = {}
 for hero in hero_json:
 cname_ename[hero['cname']] = hero['ename']
 return cname_ename
def get_skin_name(hero_json): #傳入從網(wǎng)頁獲取到的json轉(zhuǎn)換為python字典的對象
 '''獲取英雄名稱對應(yīng)的皮膚的所有皮膚名稱的字典,例如
 {'小喬':'戀之微風|萬圣前夜|天鵝之夢|純白花嫁|繽紛獨角獸',...}'''
 cname_skin_name = {}
 for hero in hero_json:
 cname_skin_name[hero['cname']] = hero['skin_name']
 return cname_skin_name
def get_hero_skin_count(cname_skin_name): #傳入英雄名稱對應(yīng)皮膚名稱的字典
 '''獲取每個英雄對應(yīng)的皮膚的個數(shù),例如{'小喬':5,...}'''
 cname_skin_count = {} 
 for item in cname_skin_name.items():
 cname_skin_count[item[0]] = len(item[1].split('|'))
 return cname_skin_count
def get_skin_name_url(skin_base_rul,cname_skin_count,cname_ename):
 #傳入皮膚根地址和名稱對應(yīng)皮膚數(shù)量的字典和名稱對應(yīng)編號的字典
 '''返回英雄名稱對應(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):#傳入名稱對應(yīng)皮膚名稱字符串的字典
 cname_skin_name_dict = {}  #返回名稱對應(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):#傳入名稱對應(yīng)【皮膚名稱列表】的字典和名稱對應(yīng)皮膚url列表的字典
 # """獲取每個英雄的圖片"""
 for cname,skin_url in cname_url_list.items():
 
 if mkdir(skin_base_dir+cname):#創(chuàng)建指定目錄
  os.chdir(skin_base_dir+cname) #進入到創(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()
 # 去除尾部 \ 符號
 path=path.rstrip("\\")
 # 判斷路徑是否存在
 # 存在 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) #請求英雄列表
 hero_list_json = hero_list_body.json() #將英雄列表的獲取的json數(shù)據(jù)轉(zhuǎn)換為python對象
 cname_ename = {} #英雄名稱對應(yīng)英雄編號的字典
 cname__skin_name = {} #英雄名稱對應(yīng)皮膚名稱字符串的字典
 cname_skin_count = {} #英雄名稱對應(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)

下面是保存抓取到的圖片的文件夾樣例:

上面就是抓取王者榮耀所有英雄皮膚的簡單示例,上述的代碼并沒有使用python多線程執(zhí)行抓取圖片的函數(shù),所以在執(zhí)行的時候可能需要花費幾分鐘的時間,

以后在進行改進,添加使用python多線程執(zhí)行抓取任務(wù)。

這篇用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中的IO流使用解讀

    python中的IO流使用解讀

    這篇文章主要介紹了python中的IO流使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python操控Chrome瀏覽器進行網(wǎng)頁操作

    Python操控Chrome瀏覽器進行網(wǎng)頁操作

    這篇文章將為您展示如何通過Python控制瀏覽器實現(xiàn)網(wǎng)頁的打開、頁面的切換和關(guān)閉的基本操作,文中的示例代碼講解詳細,感興趣的可以了解一下
    2023-06-06
  • 使用Django的JsonResponse返回數(shù)據(jù)的實現(xiàn)

    使用Django的JsonResponse返回數(shù)據(jù)的實現(xiàn)

    這篇文章主要介紹了使用Django的JsonResponse返回數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Python實現(xiàn)獲取網(wǎng)站PR及百度權(quán)重

    Python實現(xiàn)獲取網(wǎng)站PR及百度權(quán)重

    這篇文章主要介紹了Python實現(xiàn)獲取網(wǎng)站PR及百度權(quán)重,本文使用傳參的方式請求站長工具和谷歌工具獲取PR值和百度權(quán)重,需要的朋友可以參考下
    2015-01-01
  • Python沖頂大會 快來答題!

    Python沖頂大會 快來答題!

    直播答題沖頂大會,你玩了嗎?本文為大家分享了10道Python測試題,你答對1道算我輸
    2018-01-01
  • pytorch使用resnet快速加載官方提供的預訓練模型

    pytorch使用resnet快速加載官方提供的預訓練模型

    這篇文章主要介紹了pytorch使用resnet快速加載官方提供的預訓練模型方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python實現(xiàn)excel轉(zhuǎn)置問題詳解

    python實現(xiàn)excel轉(zhuǎn)置問題詳解

    這篇文章主要介紹了python實現(xiàn)excel轉(zhuǎn)置問題詳解,excel轉(zhuǎn)置分為兩種情況,一個是較為簡單的只需要行轉(zhuǎn)列,列轉(zhuǎn)行,具體詳解,感興趣的小伙伴可以參考一下
    2022-09-09
  • python manim實現(xiàn)排序算法動畫示例

    python manim實現(xiàn)排序算法動畫示例

    這篇文章主要為大家介紹了python manim實現(xiàn)排序算法動畫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • python讀取LMDB中圖像的方法

    python讀取LMDB中圖像的方法

    這篇文章主要為大家詳細介紹了python讀取LMDB中圖像的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 簡單了解django文件下載方式

    簡單了解django文件下載方式

    這篇文章主要介紹了簡單了解django三種文件下載方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02

最新評論

温宿县| 阜阳市| 泰宁县| 台东县| 博白县| 北流市| 从化市| 荃湾区| 昌宁县| 惠水县| 衡阳县| 崇州市| 开封县| 青阳县| 通州市| 特克斯县| 江陵县| 漳州市| 锡林郭勒盟| 黎川县| 政和县| 尚义县| 涪陵区| 伊春市| 南华县| 祁阳县| 达拉特旗| 安顺市| 界首市| 鸡泽县| 莆田市| 嘉黎县| 延边| 阿合奇县| 凤翔县| 富顺县| 尼勒克县| 亚东县| 饶阳县| 临海市| 三台县|