五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[破事水] 如何下載B站所有的404圖片?

2020-08-12 02:11 作者:進(jìn)棧檢票  | 我要投稿

眾所周知,當(dāng)我們在B站打開一個并不存在或者已被刪除的頁面時,會被引向一個錯誤頁面,如圖:

當(dāng)你興奮的點(diǎn)進(jìn)一個aid/bvid然后發(fā)現(xiàn)是這個樣子……

//www.bilibili.com/404

其實(shí)把404換成400、403、503甚至100都會引向這個頁面,不過打開console一看……還是404

還是404

我們可以看到這個404頁面上放有圖片,大概都是有關(guān)B站官方形象的漫畫,可以更換顯示,一共有幾十張的樣子。首先可以猜測,這些圖片的地址是通過請求一個API返回的。翻一下XHR請求,找到請求如下,是沒有請求參數(shù)的靜態(tài)API。

//www.bilibili.com/activity/web/view/data/31

觀察其響應(yīng)體,定位到圖片地址的所在位置,如圖:

API及其響應(yīng)體

設(shè)整個響應(yīng)體為source,獲取?加上了`https:`和HTML換行標(biāo)簽的所有圖片地址的數(shù)組?的代碼如下:

source.data.list.map(el?=>?'https:'?+?el.data.img?+?'\<br\/\>')

設(shè)上述數(shù)組為list,將這個數(shù)組轉(zhuǎn)換成長文本(不用換行符分行,前面分好了)的代碼如下(Array.reduce()最基礎(chǔ)的應(yīng)用):

list.reduce((a,?b)?=>?a?+?b))

組合以上代碼得到這么長一串:

document.write(JSON.parse(document.body.innerText).data.list.map(el?=>?'https:'?+?el.data.img?+?'\<br\/\>').reduce((a,?b)?=>?a?+?b))

直接用瀏覽器訪問這個API,在console中輸入上述代碼,即在頁面中得到所有圖片地址的文本,如圖:

瀏覽器直接訪問API的樣子
是不是很神奇(doge 其實(shí)很無聊的啦

然后你就可以拿著這個列表用BitComet等工具下載了,下載到的圖片如下:

共79張,有少量重復(fù)(不知何故)

還有一共7張圖片藏在這個頁面對應(yīng)的JS即`error.js`里面,地址如下:

//activity.hdslb.com/zzjs/cartoon/errorPage-manga-[1-7].png

error.js的內(nèi)容,下面還有請求剛才的API的XHR請求源碼

圖片內(nèi)容和上面79個重復(fù),不過第一張不知何故尺寸非常大,其他正常。

error.js中發(fā)現(xiàn)的7張圖片


[破事水] 如何下載B站所有的404圖片?的評論 (共 條)

分享到微博請遵守國家法律
台东县| 额济纳旗| 梧州市| 鸡泽县| 淮南市| 滦平县| 扬中市| 定南县| 桂阳县| 揭西县| 九龙坡区| 盘锦市| 阿拉善右旗| 大安市| 青浦区| 临江市| 天镇县| 威宁| 习水县| 桃源县| 莲花县| 阿拉善右旗| 盈江县| 恩平市| 进贤县| 栾城县| 广河县| 晴隆县| 宣城市| 晋州市| 郎溪县| 廉江市| 天全县| 抚远县| 拉萨市| 宿州市| 昌宁县| 法库县| 德阳市| 永清县| 沾化县|