最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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圖片?的評論 (共 條)

分享到微博請遵守國家法律
中山市| 钟山县| 定南县| 无棣县| 通辽市| 长春市| 贞丰县| 二手房| 西乌珠穆沁旗| 天镇县| 许昌县| 临邑县| 盐津县| 秀山| 磐石市| 诸暨市| 铜鼓县| 贡山| 康乐县| 循化| 镇坪县| 全州县| 辽阳市| 稻城县| 盘山县| 光泽县| 隆尧县| 黑水县| 会昌县| 清水河县| 孟村| 资溪县| 海原县| 花莲市| 五台县| 昌平区| 德州市| 铁岭市| 江川县| 石城县| 莱州市|