完成目標(biāo):
??獲取王者官網(wǎng)英雄介紹頁(yè)面高清圖片
??王者榮耀大家都玩過吧,沒玩過的也應(yīng)該聽說過,作為時(shí)下最火的手機(jī)MOBA游戲,咳咳,好像跑題了。我們今天的重點(diǎn)是爬取王者榮耀所有英雄的所有皮膚!
編輯器:pycharm
用到的庫(kù):requests、lxml
??打開官網(wǎng),進(jìn)入英雄資料頁(yè)面,通過開發(fā)者工具,得到所有的英雄的數(shù)據(jù)
??每一個(gè)英雄資料為json格式,共106個(gè),其中一個(gè)顯示如下:
??解碼后,名稱如下:
{ "cname": "廉頗", # 英雄名稱 "ename": 105, # 英雄編號(hào) "hero_type": 3, # 英雄類型 "new_type": 0, "skin_name": "正義爆轟|地獄巖魂", # 英雄皮膚名稱 "title": "正義爆轟" # 當(dāng)前皮膚 }
??這里主要需要的是 cname、ename、skin_name,skin_name用于獲取皮個(gè)數(shù)
??打開一個(gè)英雄的詳情頁(yè),打開開發(fā)者工具,以為云櫻為例,一共兩個(gè)皮膚,分別在兩個(gè)li標(biāo)簽中,因此循環(huán)兩次就可以全部拿到,也就是為什么之前要獲取skin_name的原因
??觀察url,尋找規(guī)律,其中前面的【//game.gtimg.cn/images/yxzj/img201606/skin/hero-info/】都是固定的,后面的是每個(gè)英雄的ename,然后ename-bigskin-skin_name的長(zhǎng)度,因此,只要對(duì)這個(gè)url進(jìn)行請(qǐng)求就可以得到高清壁紙
//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打印數(shù)據(jù)原始格式 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,"下載完成...")
??中間會(huì)有skin_name異常,一定要捕獲異常,保證程序一直執(zhí)行下去,并且出現(xiàn)了幾次IP異常,下次嘗試使用代理。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/118786.html
摘要:本篇就來教大家如何使用來爬取這些精美的英雄皮膚。有了英雄編號(hào)的對(duì)應(yīng)關(guān)系,再找尋下英雄皮膚的鏈接規(guī)律。將圖片保存下來,并以英雄名稱皮膚序號(hào)方式命名效果展示最終的爬取效果如下圖所示。 showImg(https://segmentfault.com/img/remote/1460000018627654); 0.引言 作為一款現(xiàn)象級(jí)游戲,王者榮耀,想必大家都玩過或聽過,游戲里中各式各樣的英...
摘要:文章目錄方法方法作為王者榮耀的老玩家,今天教大家如何用爬蟲獲取王者榮耀皮膚本文將介紹兩種王者榮耀皮膚的爬取方法,一種比較簡(jiǎn)單的,一種復(fù)雜的方法供大家學(xué)習(xí)。 文章目...
摘要:敵軍還有秒鐘到達(dá)戰(zhàn)場(chǎng),請(qǐng)做好準(zhǔn)備研究產(chǎn)品,王者榮耀為什么這么火它的用戶成長(zhǎng)體系是怎樣的用戶到底是怎么上癮的作為產(chǎn)品經(jīng)理,有哪些是可以借鑒學(xué)習(xí)的本文的小編將從上癮模型,全面分析王者榮耀到底是怎么一步步讓用戶上癮的。 敵軍還有5秒鐘到達(dá)戰(zhàn)場(chǎng),請(qǐng)做好準(zhǔn)備!研究產(chǎn)品,王者榮耀為什么這么火?它的用戶成長(zhǎng)體系是怎樣的?用戶到底是怎么上癮的?作為產(chǎn)品經(jīng)理,有哪些是可以借鑒學(xué)習(xí)的! 本文的小編將從Ho...
摘要:策略模式的使用場(chǎng)景針對(duì)同一類型問題的多種處理方式,僅僅是具體行為有差別時(shí)需要安全地封裝多種同一類型的操作時(shí)出現(xiàn)同一抽象類有多個(gè)子類,而又需要使用或者來選擇具體子類時(shí)。抽象策略角色這是一個(gè)抽象角色,通常由一個(gè)接口或抽象類實(shí)現(xiàn)。 寫代碼時(shí)總會(huì)出很多的if…else,或者case。如果在一個(gè)條件語(yǔ)句中又包含了多個(gè)條件語(yǔ)句就會(huì)使得代碼變得臃腫,維護(hù)的成本也會(huì)加大,而策略模式就能較好的解決這個(gè)問...
閱讀 1644·2021-09-02 15:11
閱讀 1977·2019-08-30 14:04
閱讀 2565·2019-08-27 10:52
閱讀 1585·2019-08-26 11:52
閱讀 1207·2019-08-23 15:26
閱讀 2624·2019-08-23 15:09
閱讀 2606·2019-08-23 12:07
閱讀 2236·2019-08-22 18:41