完成目標:
??獲取王者官網英雄介紹頁面高清圖片
??王者榮耀大家都玩過吧,沒玩過的也應該聽說過,作為時下最火的手機MOBA游戲,咳咳,好像跑題了。我們今天的重點是爬取王者榮耀所有英雄的所有皮膚!
編輯器:pycharm
用到的庫:requests、lxml
??打開官網,進入英雄資料頁面,通過開發者工具,得到所有的英雄的數據
??每一個英雄資料為json格式,共106個,其中一個顯示如下:
??解碼后,名稱如下:
{ "cname": "廉頗", # 英雄名稱 "ename": 105, # 英雄編號 "hero_type": 3, # 英雄類型 "new_type": 0, "skin_name": "正義爆轟|地獄巖魂", # 英雄皮膚名稱 "title": "正義爆轟" # 當前皮膚 }
??這里主要需要的是 cname、ename、skin_name,skin_name用于獲取皮個數
??打開一個英雄的詳情頁,打開開發者工具,以為云櫻為例,一共兩個皮膚,分別在兩個li標簽中,因此循環兩次就可以全部拿到,也就是為什么之前要獲取skin_name的原因
??觀察url,尋找規律,其中前面的【//game.gtimg.cn/images/yxzj/img201606/skin/hero-info/】都是固定的,后面的是每個英雄的ename,然后ename-bigskin-skin_name的長度,因此,只要對這個url進行請求就可以得到高清壁紙
//game.gtimg.cn/images/yxzj/img201606/skin/hero-info/538/538-bigskin-1.jpg//game.gtimg.cn/images/yxzj/img201606/skin/hero-info/538/538-bigskin-2.jpg
from pprint import pprintimport requestsif __name__ == "__main__": headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Edg/92.0.902.84" } baseurl = "https://pvp.qq.com/web201605/js/herolist.json" r = requests.get(url=baseurl, headers=headers) data = r.json() # 英雄資料,包含cname、ename、skin_name for i in data: pprint(i) # 使用pprint打印數據原始格式 cname = i["cname"] ename = i["ename"] try: skin_name = i["skin_name"].split("|") # 其中馬超沒有skin_name except Exception as e: print(e) for skin_num in range(1, len(skin_name) + 1): sk_url = "http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/" + str(ename) + "/" + str( ename) + "-bigskin-" + str(skin_num) + ".jpg" # url拼接 try: data = requests.get(url=sk_url, headers=headers).content with open("img/" + cname + "-" + skin_name[skin_num - 1] + ".jpg", "wb")as fp: fp.write(data) except Exception as e : print(e) print(ename,"下載完成...")
??中間會有skin_name異常,一定要捕獲異常,保證程序一直執行下去,并且出現了幾次IP異常,下次嘗試使用代理。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/118786.html
摘要:本篇就來教大家如何使用來爬取這些精美的英雄皮膚。有了英雄編號的對應關系,再找尋下英雄皮膚的鏈接規律。將圖片保存下來,并以英雄名稱皮膚序號方式命名效果展示最終的爬取效果如下圖所示。 showImg(https://segmentfault.com/img/remote/1460000018627654); 0.引言 作為一款現象級游戲,王者榮耀,想必大家都玩過或聽過,游戲里中各式各樣的英...
摘要:文章目錄方法方法作為王者榮耀的老玩家,今天教大家如何用爬蟲獲取王者榮耀皮膚本文將介紹兩種王者榮耀皮膚的爬取方法,一種比較簡單的,一種復雜的方法供大家學習。 文章目...
摘要:敵軍還有秒鐘到達戰場,請做好準備研究產品,王者榮耀為什么這么火它的用戶成長體系是怎樣的用戶到底是怎么上癮的作為產品經理,有哪些是可以借鑒學習的本文的小編將從上癮模型,全面分析王者榮耀到底是怎么一步步讓用戶上癮的。 敵軍還有5秒鐘到達戰場,請做好準備!研究產品,王者榮耀為什么這么火?它的用戶成長體系是怎樣的?用戶到底是怎么上癮的?作為產品經理,有哪些是可以借鑒學習的! 本文的小編將從Ho...
摘要:策略模式的使用場景針對同一類型問題的多種處理方式,僅僅是具體行為有差別時需要安全地封裝多種同一類型的操作時出現同一抽象類有多個子類,而又需要使用或者來選擇具體子類時。抽象策略角色這是一個抽象角色,通常由一個接口或抽象類實現。 寫代碼時總會出很多的if…else,或者case。如果在一個條件語句中又包含了多個條件語句就會使得代碼變得臃腫,維護的成本也會加大,而策略模式就能較好的解決這個問...
閱讀 1639·2021-09-02 15:11
閱讀 1976·2019-08-30 14:04
閱讀 2562·2019-08-27 10:52
閱讀 1582·2019-08-26 11:52
閱讀 1203·2019-08-23 15:26
閱讀 2623·2019-08-23 15:09
閱讀 2606·2019-08-23 12:07
閱讀 2234·2019-08-22 18:41