爬蟲思路
初步嘗試
我先查看了network,并沒有發(fā)現(xiàn)有可用的API;然后又用bs4去分析英雄列表頁,但是請(qǐng)求到html里面,并沒有英雄列表,在英雄列表的節(jié)點(diǎn)上,只有“正在加載中”這樣的字樣;同樣的方法,分析英雄詳情也是這種情況,所以我猜測(cè),這些數(shù)據(jù)應(yīng)該是Javascript負(fù)責(zé)加載的。

繼續(xù)嘗試
然后我就查看了 英雄列表的源代碼 ,查看外部引入的js文件,以及行內(nèi)的js腳本,大概在368行,發(fā)現(xiàn)了有處理英雄列表的js注釋,然后繼續(xù)往下讀這些代碼,發(fā)現(xiàn)了第一個(gè)彩蛋,也就是他引入了一個(gè)champion.js的文件,我猜測(cè),這個(gè)應(yīng)該就是英雄列表大全了,然后我打開了這個(gè)鏈接的js,一眼看過去,黑麻麻一片,然后格式化了一下壓縮的js,確定這就是英雄列表的js數(shù)據(jù)文件了。

接著嘗試
前面通過查看列表的源代碼,找到了英雄列表的js數(shù)據(jù)文件,那么,我繼續(xù)隨機(jī)點(diǎn)開了一個(gè)英雄的詳情,然后查看 英雄詳情源代碼 ,然后大概在568行看到有一個(gè)showSkin的js方法,通過這里,發(fā)現(xiàn)了第二個(gè)彩蛋,也就是皮膚圖片的URL地址拼接方法。

最后嘗試
上面找到了皮膚圖片URL的拼接方法,并且發(fā)現(xiàn)了一行很關(guān)鍵的代碼 var skin =LOLherojs.champion[heroid].data.skins ,也就是,這個(gè)skin變量,就是英雄皮膚的所有圖片數(shù)組,但是這個(gè)文件內(nèi),并沒有LOLherojs這個(gè)變量,也就是外部引入的,所以,需要繼續(xù)查看下面的源代碼,找到引入這個(gè)變量的位置,果不其然,在757行,發(fā)現(xiàn)了最后一個(gè)彩蛋,也就是,英雄皮膚的js文件,通過這里可以知道,每個(gè)英雄都有一個(gè)單獨(dú)的js文件,并且知道了這個(gè)js文件的URL拼接方法。
新聞熱點(diǎn)
疑難解答
圖片精選