來源:Python 技術(shù)「ID: pythonall」 很多朋友都喜歡玩王者榮耀,也很喜歡里面的英雄和各種風(fēng)格的皮膚,而今天為大家介紹的,就是如果用 Python 一鍵獲取全英雄的皮膚圖片,保存到電腦上,用來做背景圖片循環(huán)切換,是不是也很美…… 安裝模塊這里需要安裝以下模塊,當(dāng)然如果已安裝就不用再裝了: # 安裝引用模塊 pip3 install bs4 pip3 install requests 分析獲取先打開王者榮耀官網(wǎng)英雄介紹頁面(http://pvp.qq.com/web201605/herolist.shtml),在這個頁面列出了所有的英雄,然后打開 Chrome 開發(fā)者工具,刷新后在 Network 看到如下圖請求 url,會返回包含所有英雄信息的 Json 串。 把這個 Json 文件下載下來,我們可以看到里面的內(nèi)容如下: 然后當(dāng)我們點擊某個英雄進到詳細(xì)介紹頁面,會看到以這個英雄各種皮膚的圖片,再次打開開發(fā)者工具,在源碼里找到皮膚圖片對應(yīng)的 url,如下圖所示: 通過查看多個皮膚,我們可以發(fā)現(xiàn)這個 url(http://game./images/yxzj/img201606/skin/hero-info/531/531-bigskin-2.jpg)是有規(guī)律的變化,可以看出 url 中數(shù)字 好了,找到了規(guī)律,剩下就好辦了,因為這個用代碼實現(xiàn)一點也不復(fù)雜。 代碼實現(xiàn)直接上代碼吧,我已經(jīng)在代碼里加了注釋如下: # get_heros.py # 引入模塊 import requests import json import os import time
#程序開始時間 st = time.time() url = 'http://pvp.qq.com/web201605/js/herolist.json' # 獲取 json 內(nèi)容 response=requests.get(url).content
# 提取 Json 信息 jsonData=json.loads(response) # 打印查看 print(jsonData)
# 初始化下載數(shù)量 x = 0
hero_dir='/Users/mm/python/python-examples/heros/imgs/' #目錄不存在則創(chuàng)建 if not os.path.exists(hero_dir): os.mkdir(hero_dir)
for m in range(len(jsonData)): # 英雄編號 ename = jsonData[m]['ename'] # 英雄名稱 cname = jsonData[m]['cname'] # 皮膚名稱,一般英雄會有多個皮膚 skinName = jsonData[m]['skin_name'].split('|') # 皮膚數(shù)量 skinNumber = len(skinName)
# 循環(huán)遍歷處理 for bigskin in range(1,skinNumber+1): # 拼接下載圖片url picUrl = 'http://game./images/yxzj/img201606/skin/hero-info/'+str(ename)+'/'+str(ename)+'-bigskin-'+str(bigskin)+'.jpg' #獲取圖片內(nèi)容 picture = requests.get(picUrl).content # 保存圖片 with open( hero_dir + cname + "-" + skinName[bigskin-1]+'.jpg','wb') as f: f.write(picture) x=x+1 print("當(dāng)前下載第"+str(x)+"張皮膚") # 獲取結(jié)束時間 end = time.time() # 計算執(zhí)行時間 exec_time = end-st print("找到并下載"+str(x)+"張圖片,總共用時"+str(exec_time)+"秒。") 代碼寫好,接下我們執(zhí)行命令 下載完成的皮膚圖片: 總結(jié)本文為大家介紹了如何通過 Python 實現(xiàn)王者榮耀全英雄皮膚圖片的下載,喜歡玩游戲的朋友們,以后再也不用愁沒有圖片做桌面壁紙了,如果你喜歡記得點 |
|