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
- win10控制皮膚在哪裡 控制皮膚快捷鍵的開啟方式Win10
- python 爬取 mc 皮膚Python
- 支援一鍵安裝的LIinux/windows伺服器管理皮膚UXWindows伺服器
- 用Python爬取《王者榮耀》英雄皮膚資料並視覺化分析,用圖說話Python視覺化
- 手摸手教你設定部落格園自定義皮膚
- win10控制皮膚快捷鍵是什麼 快速開啟控制皮膚的具體方法Win10
- 小喬皮膚
- 天美分享《王者榮耀》五週年李小龍限定皮膚創作歷程
- Python獲取英雄聯盟皮膚原畫:新手玩家們都懵了!Python
- 電腦點選右鍵控制皮膚沒反應怎麼回事_滑鼠右鍵控制皮膚沒反應如何解決
- 王者榮耀為什麼會保留銘文系統和皮膚屬性加成?
- 部落格皮膚
- 如何利用運維皮膚進行資料庫一鍵安裝和管理?運維資料庫
- 推薦一款超實用的皮膚工具,快速實現一鍵環境部署!
- 記錄一次Django部署到寶塔Linux皮膚的全過程DjangoLinux
- 王者榮耀S20賽季一級戰令皮膚曝光:豬八戒西部大鏢客特效一覽特效
- 用Python爬取"王者農藥"英雄皮膚Python
- python 列出皮膚資料所有變數名Python變數
- 如和獲得系統熱鍵
- 瀏覽器皮膚瀏覽器
- jsp換皮膚JS
- 本部落格皮膚
- grafana複製panel皮膚快捷鍵pd,進入編輯模式快捷鍵eGrafana模式
- 利用Vultr VPS皮膚自帶指令碼一鍵安裝WordPress網站程式指令碼網站
- 部落格園皮膚-我的部落格園皮膚設定教程
- 用Python爬取英雄聯盟(lol)全部皮膚Python
- python對英雄皮膚進行圖片採集~Python
- python 一鍵獲取郵件附件Python
- android 獲得後退鍵按事件Android事件
- wampserver服務皮膚Server
- [萌]chrome效能分析皮膚Chrome
- 載入系統皮膚
- smit 清除 皮膚告警燈MIT
- Android鍵盤皮膚衝突 佈局閃動處理方案Android