爬蟲思路
初步嘗試
我先查看了network,并沒有發現有可用的API;然后又用bs4去分析英雄列表頁,但是請求到html里面,并沒有英雄列表,在英雄列表的節點上,只有“正在加載中”這樣的字樣;同樣的方法,分析英雄詳情也是這種情況,所以我猜測,這些數據應該是Javascript負責加載的。
繼續嘗試
然后我就查看了 英雄列表的源代碼 ,查看外部引入的js文件,以及行內的js腳本,大概在368行,發現了有處理英雄列表的js注釋,然后繼續往下讀這些代碼,發現了第一個彩蛋,也就是他引入了一個champion.js的文件,我猜測,這個應該就是英雄列表大全了,然后我打開了這個鏈接的js,一眼看過去,黑麻麻一片,然后格式化了一下壓縮的js,確定這就是英雄列表的js數據文件了。
接著嘗試
前面通過查看列表的源代碼,找到了英雄列表的js數據文件,那么,我繼續隨機點開了一個英雄的詳情,然后查看 英雄詳情源代碼 ,然后大概在568行看到有一個showSkin的js方法,通過這里,發現了第二個彩蛋,也就是皮膚圖片的URL地址拼接方法。
最后嘗試
上面找到了皮膚圖片URL的拼接方法,并且發現了一行很關鍵的代碼 var skin =LOLherojs.champion[heroid].data.skins ,也就是,這個skin變量,就是英雄皮膚的所有圖片數組,但是這個文件內,并沒有LOLherojs這個變量,也就是外部引入的,所以,需要繼續查看下面的源代碼,找到引入這個變量的位置,果不其然,在757行,發現了最后一個彩蛋,也就是,英雄皮膚的js文件,通過這里可以知道,每個英雄都有一個單獨的js文件,并且知道了這個js文件的URL拼接方法。
新聞熱點
疑難解答