爬蟲是一門有趣的技術(shù)特愿,它可以讓我們感受到程序的魅力仲墨,給我們帶來視覺沖擊感和成就感,可以極大地提高我們對編程的學(xué)習(xí)興趣揍障。
——————————————————————————————————————
愿你我目养,都能:
遵循君子協(xié)議
合理使用技術(shù)
提高學(xué)習(xí)興趣
今天咱們來玩一把王者榮耀。首先咱們打開王者榮耀官網(wǎng):
王者榮耀?pvp.qq.com
進(jìn)去之后可以看到里面有許多英雄高清皮膚壁紙
于是我就想把這些英雄皮膚的壁紙統(tǒng)統(tǒng)給扒拉到本地毒嫡。首先咱們?nèi)缦抡业剿械挠⑿郯┮希僬业剿麄儗?yīng)的皮膚
找一個我的拿手英雄--達(dá)摩
可以看到達(dá)摩有四個皮膚,我的想法就是把達(dá)摩所有的皮膚都下載到本地兜畸。
首先咱們F12找到皮膚所在的位置:
達(dá)摩有四個皮膚努释,所以這個鏈接的后綴1234分別代表四個不同的皮膚。
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/134/134-bigskin-1.jpg
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/134/134-bigskin-2.jpg
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/134/134-bigskin-3.jpg
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/134/134-bigskin-4.jpg
所以咱們就可以得出結(jié)論咬摇,同一英雄皮膚位置只有后面的序號不同伐蒂。如果你輸入5,那就是不存在的肛鹏,所以它就會報404找不到的錯誤逸邦!
接下來咱們再分析一下不同英雄之間是如何區(qū)分的
達(dá)摩和二師兄的地址如下:
https://pvp.qq.com/web201605/herodetail/134.shtml
https://pvp.qq.com/web201605/herodetail/511.shtml
觀察一下有什么規(guī)律恩沛?
除了后面的數(shù)字不同在都是一樣的吧~所以我們猜測一下,英雄之間是不是就是由后面那個數(shù)字控制的昭雌?
我們?nèi)缦陆缑娲蜷_F12觀察一下網(wǎng)絡(luò)請求复唤。
我們點擊查看一下這些英雄信息
可以很清晰地看到每個英雄對應(yīng)的編號,名字和皮膚烛卧。為了保險起見佛纫,咱們可以驗證一下,例如109是妲己总放,它有7個皮膚呈宇。所以它的請求地址應(yīng)該就是
https://pvp.qq.com/web201605/herodetail/109.shtml
怎么樣,沒錯吧局雄!
好了到此為止甥啄,我們準(zhǔn)備工作已經(jīng)完成一大半了,接下來就剩下編碼了
代碼實現(xiàn)
按照之前的分析炬搭,我們首先要得到各個英雄對應(yīng)的編號蜈漓,所以首先需要分析herolist.json文件
可以看到已經(jīng)打印出我們所需的英雄信息了,但是我們需要的沒有這么復(fù)雜宫盔。英雄壁紙我們需要英雄編號和姓名就夠了融虽。
已經(jīng)成功的提取出我們想要的信息了,接下來我們再看看之前的壁紙鏈接
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/134/134-bigskin-1.jpg
替換我們需要修改的參數(shù)即可
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + hero_No + '/' + hero_No + '-bigskin-1.jpg
剛才咱們已經(jīng)研究過了灼芭,皮膚壁紙的不同之處在于最后面的編號有额,他有多少皮膚編號就到多少。但是最大皮膚不超過10個彼绷,至少目前是這樣巍佑。所以我們給他設(shè)置一個最大為10的循環(huán)來獲取它的皮膚
好了看看我們下載的圖片是否滿意
好了到此為止代碼已經(jīng)完成。功能雖已實現(xiàn)寄悯。但是需要改進(jìn)的地方還有很多萤衰,后續(xù)我們繼續(xù)對代碼進(jìn)行完善。
需要學(xué)習(xí)的同學(xué)可以私我哦热某!