Python獲取英雄聯盟皮膚原畫:新手玩家們都懵了!
本爬蟲是為了經驗交流,喜歡博主的讀者,可以點個關注~,更多精彩內容*
爬蟲過程
* 分析網頁
* 獲取每一位英雄的ID值
* 分析原畫網頁
- 結語
前言
在本次的爬蟲教程的過程中,我也會分享給大家一些簡單實用的爬蟲小技巧。
夜太美,爬蟲就沒那麼危險
在爬取的時候,不要猛攻嘛~,啊啊。。人家伺服器受不了啊。。。
你要學會停頓,剋制一點,該 sleep 就 sleep。
趁著人家睡覺的時候,限制防範程度是最低的,能晚點就晚點爬,沒有看過凌晨4點的洛杉磯,但是你還可以看到凌晨4點的爬蟲呢。
這樣你的IP地址才不會容易被封。
善於利用他人的UA
如果你在看別人網站的robots.txt,你就會看到別人的宣告,宣告什麼內容可以爬,什麼內容不可以爬。但是,不要忽略了人家的宣告,希望給什麼搜尋引擎爬,比如下面這個
看到沒,這個別人定義的robots.txt值得注意的是 User-Agent ,那麼當你在Python構造headers的時候,User-Agent就直接指定它們的robots定義的就好了啊,比如:百度的UA,Google的UA或者是搜狗的UA等等。你再去爬爬看,那叫一個友好啊。
爬蟲過程
分析網頁
通過開發者模式F12,你就會發現箭頭所指的檔案了,沒有看到的話,重新整理一下試試。
新手學習,Python 教程/工具/方法/解疑+V:itz992
`url0 = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
try:
response = requests.get(url0, headers=headers)
response.raise_for_status()
response.encoding = response.apparent_encoding # 設定編碼格式
hreolist = response.json() # 將Response轉換成json格式
print(hreolist) # 列印出英雄列表
print(len(hreolist['hero'])) # 列印英雄個數:151
except Exception as e:
print(e)
通過上面的程式碼,我成功的獲取到了所有的英雄,以及英雄的總個數。
這裡只是擷取部分的列印資訊
`{'hero': [{'heroId': '1', 'name': '黑暗之女', 'alias': 'Annie', 'title': '安妮', 'roles': ['mage'], 'isWeekFree': '0', 'attack': '2', 'defense': '3', 'magic': '10', 'difficulty': '6', 'selectAudio': 'https://game.gtimg.cn/images/lol/act/img/vo/choose/1.ogg', 'banAudio': 'https://game.gtimg.cn/images/lol/act/img/vo/ban/1.ogg', 'isARAMweekfree': '0', 'ispermanentweekfree': '0', 'changeLabel': '無改動', 'goldPrice': '4800', 'couponPrice': '2000', 'camp': '', 'campId': '', 'keywords': '安妮,黑暗之女,火女,Annie,anni,heianzhinv,huonv,an,hazn,hn'}
通過上面的json資訊其實你會發現,英雄的列表資訊是寫在了hero下的。
獲取每一位英雄的ID值
通過剛剛獲取到的json值,你會發現,這些值裡面有一個鍵: ‘heroId’ ,那麼這個’heroId’是用來做什麼的呢?
這個我開始是不知道的,接下來我進入到了皮膚原畫的網址,馬上就霍然開朗了
https://lol.qq.com/data/info-defail.shtml?id=1 安妮
https://lol.qq.com/data/info-defail.shtml?id=2 奧拉夫
https://lol.qq.com/data/info-defail.shtml?id=876 莉莉婭
通過上面的三個URL地址你就會發現heroId就是一個查詢引數id。
但是在這裡有一個坑,想必你也看到了,英雄的個數只有151個,id值卻是876,。沒錯,在前100多個英雄都不會有什麼問題很有規律,但是100多之後就出現問題了,每個英雄的id值跳轉的很多,所以要進入每一位英雄的原畫去爬圖片就必須要正確拼接URL。每位英雄的ID值獲取就成了必不可少的一步。
url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
hero_list_json = hreolist
hero_lists = hero_list_json['hero'] # 獲取英雄列表
heros_id = list(map(lambda x: x['heroId'], hero_lists)) # 獲取英雄編號
分析原畫網頁
開啟開發者模式,你會發現一個檔案
在上圖中可以看到skins有10個值,點開第一個可以看到 loadingImg ,而這個鍵對應的值就是皮膚原畫的URL地址。
當然,作為老玩家們都知道,莉莉婭只有兩種皮膚,但是skins裡面為什麼有10個值,依次點開第三個至第十個,會發現其餘的loadingImg的值都是空的。
url_list = [] # 儲存每一位英雄資訊的url地址
for hero_id in heros_id:
url = 'https://game.gtimg.cn/images/lol/act/img/js/hero/{}.js'.format(hero_id)
# print(url)
url_list.append(url)
url1 = 'https://game.gtimg.cn/images/lol/act/img/js/hero/876.js'
try:
response = requests.get(url1, headers=headers)
response.raise_for_status()
response.encoding = response.apparent_encoding # 設定編碼格式
hreo_info = response.json()
skins = hreo_info['skins'] # 獲取英雄皮膚資訊
# 遍歷每一個皮膚的loadingImg與皮膚名稱
for skin in skins:
print(skin['loadingImg'])
print(skin['name'])
except Exception as e:
print(e)
新手學習,Python 教程/工具/方法/解疑+V:itz992
通過上面的兩組程式碼的思路,那麼已經可以實現一個英雄的皮膚原畫的爬取了,需要獲取所有的皮膚原畫,無非就是多一個迴圈。
當你會爬第一個英雄的原畫時,你還怕得不到其他英雄嗎?
結語
爬取英雄聯盟的英雄原畫的思路已經分享給大家了。
請問親愛的讀者,你是否可以將王者榮耀的英雄皮膚全部拿下呢?
相關文章
- Python3爬取英雄聯盟英雄皮膚大圖Python
- 用Python爬取英雄聯盟(lol)全部皮膚Python
- 為了賣皮膚,你知道《英雄聯盟》有多努力嗎?
- 用Python爬取"王者農藥"英雄皮膚Python
- ViewPager系列之-仿掌上英雄聯盟皮膚瀏覽效果Viewpager
- Python爬取王者榮耀英雄皮膚高清圖片Python
- 有Steam賬號的玩家們注意了,小心皮膚陷阱!
- 20行Python程式碼爬取王者榮耀全英雄皮膚Python
- python 爬取 mc 皮膚Python
- python對英雄皮膚進行圖片採集~Python
- python爬取王者榮耀皮膚Python
- 《英雄聯盟》系列IP開發負責人:我們是如何打造《英雄聯盟》IP宇宙的?
- 那些湧入英雄聯盟手遊的頭號玩家
- 用python對英雄聯盟選用英雄進行分析Python
- 英雄聯盟12月皮膚折扣活動說明 活動時間或在雙12當天MG
- 伊朗與敘利亞玩家被禁止登入《英雄聯盟》
- Flutter之英雄聯盟Flutter
- 英雄聯盟(洛谷)
- Python裡面這些點,據說80%的新手都會一臉懵逼Python
- 用Python爬取《王者榮耀》英雄皮膚資料並視覺化分析,用圖說話Python視覺化
- 專訪《英雄聯盟》製作人:手遊我們研發了太久,相信是值得的
- Python教你一鍵獲得【王者榮耀全皮膚】~~~Python
- 王者榮耀英雄以及英雄皮膚品質升級:新增英雄區域背景!
- 談一談英雄聯盟手遊渲染技術與畫面
- 淘寶聯盟優惠商品列表獲取
- 「Premiere中文新手教程」認識顏色皮膚REM
- 英雄聯盟自走棋《雲頂之弈》每月玩家人數超過3300萬
- 個人手札:PHP 從 Minecraft 皮膚檔案中獲取頭像PHPRaft
- 《明日方舟:終末地》:把玩家弄“嗨”了,卻也把玩家整“懵”了
- python 爬蟲 mc 皮膚站 little skin 的簡單爬取Python爬蟲
- 從《英雄聯盟》的裝備系統談玩家行為與遊戲設計遊戲設計
- 格鬥、卡牌、射擊、手遊、漫畫,英雄聯盟已經不只是一個遊戲了遊戲
- 英雄聯盟手遊奧拉夫打野怎麼玩 英雄聯盟手遊打野奧拉夫玩法攻略
- 所向無前 正當年!掌上英雄聯盟S10換膚設計小結
- 它來了!官方正式公佈《英雄聯盟》正版MOBA手遊
- 國外玩家稱讚《英雄聯盟》洲際賽:場地大氣 觀眾層次高
- 《英雄聯盟》VFX視覺風格指南視覺
- 《英雄聯盟》手遊UI設計分析UI