Python教你一鍵獲得【王者榮耀全皮膚】~~~
額,不好意思標題後面少了"高清桌布"幾個字,既然進來了也應該不虧,本文一鍵擼取427張王者榮耀皮膚高清桌布並且打包好了,文末檢視獲取方式。並且手把手教你擼取所有桌布的全過程。
開篇
前幾天看到同事的桌面桌布是王者榮耀的炫酷后羿皮膚,覺得十分帥氣,於是想自己也弄一個,可是王者皮膚這麼多一個個點網頁找太費勁,何不一把擼下來一起看呢,於是想著把所有的英雄皮膚都下載到本地的一個目錄下面慢慢選多好,說幹就幹…那我們就開始吧。
網頁分析
首先,我們進去王者榮耀官網,點進“英雄資料”介面:
按F12開啟除錯臺,隨便點選一個英雄如後翌,找到英雄原皮膚的圖片地址:
滑鼠在英雄的不同皮膚頭像上滑動,發現圖片的url地址會發生變化,但是隻有最後一個數字在改變,進一步發現皮膚號是從1,2,3…一直往後編的。好了找到了圖片的編碼規律,下面我們再看看不同英雄的圖片url地址有什麼不同。
我們回到“英雄資料”介面,點選另外一個英雄露娜,對比一下后羿與露娜英雄桌布的url地址,發現僅僅有一個數字是不相同的,后羿是169,露娜是146,如下所示。因此我們猜測這個數字應該是代表的英雄編號。
# 后羿圖片url: 'game.gtimg.cn/images/yxzj/img201606/skin/heroinfo/169/169-bigskin-1.jpg'
# 露娜圖片url: 'game.gtimg.cn/images/yxzj/img201606/skin/heroinfo/146/146-bigskin-1.jpg'
繼續回到英雄資料的介面,按F5重新整理介面,看到有一個herolist.json的檔案:
將herolist.json檔案下載下來開啟一看如下圖,發現後翌的編號就是169。至此,我們已經完成了我們的分析工作,圖片的url地址以及英雄的編號還有皮膚名稱也都有了,下面來把照片打包擼下來吧。
編碼實現
首先下載herolist.json檔案,獲取檔案內容,並解析:
# 英雄編號及皮膚資訊
hero_list_url = 'https://pvp.qq.com/web201605/js/herolist.json'
# 傳送get請求獲取資料
hero_list = requests.get(hero_list_url)
# 將獲取json資料
hero_list_json = hero_list.json()
進行英雄編號以及圖片編號的url拼接:
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{}/{}-bigskin-{}.jpg'.format(hero_num, hero_num, pic_num)
,其中hero_num
表示英雄編號,pic_num
表示圖片編號,從1開始。
解析herolist.json,並進行圖片下載,為了防止被檢測出來是爬蟲,每次下載圖片隨機間隔0-1秒之間的時間,圖片儲存名稱為英雄名_皮膚名稱.jpg
。
for each_hero in hero_list_json:
hero_name = each_hero['cname'] # 獲取英雄名稱
hero_num = each_hero['ename'] # 獲取英雄編號
# 獲取該英雄的皮膚名稱列表
skin_name_list = each_hero.get('skin_name').split('|')if each_hero.get('skin_name') else []
for i in range(10):
pic_num = i + 1 # 圖片編號是從1開始的
# # 有些圖片在json檔案中沒寫皮膚名稱, 就將皮膚名稱標為未知
skin_name = skin_name_list[i] if i <= len(skin_name_list) else '未知{}'.format(i)
pic_link = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{}/{}-bigskin-{}.jpg'.format(hero_num, hero_num, pic_num)
request_res = requests.get(pic_link)
img_path_name = os.path.join(save_path_pre,'{}_{}.jpg'.format(hero_name, skin_name))
if request_res.status_code == 200:
with open(img_path_name, 'wb') as f:
f.write(request_res.content)
all_skin_counts += 1
print('第{}張下載成功: {}|{}'.format(all_skin_counts,hero_name, skin_name))
time_rand = random.random()
time.sleep(time_rand) #隨機間隔0-1秒的時間,防止被檢測出來是爬蟲
完整程式碼如下:
import os
import requests
import time
import random
# 英雄編號及皮膚資訊
hero_list_url = 'https://pvp.qq.com/web201605/js/herolist.json'
# 傳送get請求獲取資料
hero_list = requests.get(hero_list_url)
# 將獲取json資料
hero_list_json = hero_list.json()
# 儲存目錄,須在本地建立
save_path_pre = 'F:/wzry_heropics'
if not os.path.exists(save_path_pre):
os.makedirs(save_path_pre)
all_skin_counts = 0
for each_hero in hero_list_json:
hero_name = each_hero['cname'] # 獲取英雄名稱
hero_num = each_hero['ename'] # 獲取英雄編號
# 獲取該英雄的皮膚名稱列表
skin_name_list = each_hero.get('skin_name').split('|')if each_hero.get('skin_name') else []
for i in range(10):
pic_num = i + 1 # 圖片編號是從1開始的
# # 有些圖片在json檔案中沒寫皮膚名稱, 就將皮膚名稱標為未知
skin_name = skin_name_list[i] if i <= len(skin_name_list) else '未知{}'.format(i)
pic_link = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{}/{}-bigskin-{}.jpg'.format(hero_num,hero_num,pic_num)
request_res = requests.get(pic_link)
# 圖片儲存路徑
img_path_name = os.path.join(save_path_pre,'{}_{}.jpg'.format(hero_name, skin_name))
if request_res.status_code == 200:
with open(img_path_name, 'wb') as f:
f.write(request_res.content)
all_skin_counts += 1
print('第{}張下載成功: {}|{}'.format(all_skin_counts,hero_name, skin_name))
time_rand = random.random()
time.sleep(time_rand) #隨機間隔0-1秒的時間,防止被檢測出來是爬蟲
好了,爽了,終於搞定了。最終成功擼下了全部的427張
高清全英雄皮膚照片,成果如下:
哈哈,終於可以方便的選擇自己喜歡的高清皮膚當桌面啦~~~
特別說明:本文僅供技術交流,切勿用作非法或者商業用途。
桌布 獲取方式:為方便喜歡王者榮耀高清英雄桌布的朋友獲取圖片 ,所有427張高清皮膚桌布均已為你打包準備好,掃碼關注下面公眾號,回覆’wzry’即可獲取!你也可以選擇到喜歡的高清英雄皮膚桌布哦~~~
相關文章
- python爬取王者榮耀皮膚Python
- 20行Python程式碼爬取王者榮耀全英雄皮膚Python
- 爬蟲小程式 - 爬取王者榮耀全皮膚爬蟲
- Python爬取王者榮耀英雄皮膚高清圖片Python
- 論王者榮耀爭議頻出的皮膚錨點設計
- 王者榮耀英雄以及英雄皮膚品質升級:新增英雄區域背景!
- 用Python爬取《王者榮耀》英雄皮膚資料並視覺化分析,用圖說話Python視覺化
- 王者榮耀為什麼會保留銘文系統和皮膚屬性加成?
- 天美分享《王者榮耀》五週年李小龍限定皮膚創作歷程
- 王者榮耀怎麼賺錢(一)
- 張一鳴尋找“王者榮耀”
- 王者榮耀「冰山下」
- 全軍出擊!一起探祕王者榮耀背後的鍵值資料庫資料庫
- 王者榮耀S20賽季一級戰令皮膚曝光:豬八戒西部大鏢客特效一覽特效
- 用Python爬取"王者農藥"英雄皮膚Python
- 王者榮耀羋月的玩法技巧 王者榮耀線霸羋月如何自爆一路?
- 王者榮耀進階戰令怎麼獲取?榮耀戰令進階版的獲取方法
- 王者榮耀官方釋出聖誕活動預告,蔡文姬新皮膚12月22日上架
- 專訪《王者榮耀》美術總監:做了五年皮膚,我們還是怕只做到表面
- 王者榮耀四大神獸主題皮膚曝光:玄策是白虎,花木蘭或是朱雀!
- 王者榮耀全網國服第一集合觸手直播推出榮耀殿堂計劃
- 王者榮耀墨子技能解析與使用技巧,王者榮耀墨子大招使用技巧
- 王者榮耀小喬怎麼玩?王者榮耀小喬技能介紹和玩法攻略
- 王者榮耀李白該怎麼出裝?王者榮耀李白出裝及順序解析
- 王者榮耀“吃雞模式”玩法介紹 王者榮耀邊境突圍怎麼玩模式
- 2018王者榮耀KPL秋季賽賽程表 2018王者榮耀KPL秋季賽賽制
- 王者榮耀什麼英雄剋制嫦娥?王者榮耀這幾個英雄可以剋制嫦娥
- 王者榮耀鍾馗技能怎麼用?王者榮耀鍾馗連招怎麼連呢?
- 王者榮耀鍾馗閃現技能怎麼用?王者榮耀鍾馗技能的玩法技巧
- 《王者榮耀》:屬於自己的路
- 王者榮耀米萊狄出裝和銘文搭配 王者榮耀米萊狄技能介紹
- 王者榮耀盾山要怎麼剋制呢?王者榮耀盾山的剋制方法攻略
- OPPO R15王者榮耀體驗評測 OPPO R15玩王者榮耀卡嗎?
- 王者榮耀新英雄盾山怎麼玩攻略 王者榮耀新英雄盾山技能是什麼?
- 我和《王者榮耀》的48小時
- 電競助力傳播“全民全運”,全民全運王者榮耀系列賽事收官
- 王者榮耀嫦娥打野出裝五級銘文搭配推薦,王者榮耀嫦娥打野怎麼出裝?
- 王者榮耀多執行緒模式怎麼開啟? 王者榮耀多執行緒模式是什麼執行緒模式