經(jīng)過2020年元旦跨年晚會「最美的夜」一波營銷, bilibili的文化也從小眾走向大眾世囊,zhao前段時間在折騰Linux發(fā)行版桌面的時候览绿,發(fā)現(xiàn)一張好的壁紙能極大提高操作系統(tǒng)的B格,壁紙內(nèi)容也反應(yīng)了系統(tǒng)主人的喜好砸喻,zhaoolee作為一位bilibili忠實用戶柔逼,也希望通過B站壁紙吸引更多的人加入bilibili
B站官方壁紙站直達(dá)鏈接:https://space.bilibili.com/6823116/album
B站壁紙有網(wǎng)友投稿, 也有官方繪制, 有寬屏也有豎屏
拜年祭活動
嗶哩嗶哩籃球應(yīng)援
image.png
嗶哩嗶哩學(xué)院招生
image.png
那一刻
image.png
bilibili秋
總有刁民想害朕
bilibili-01581141187000.jpg
摩羯座
文豪試煉活動
程序員日壁紙
實現(xiàn)代碼如下
?const request = require('superagent');
const fs = require('fs-extra');
const path = require('path');
const awaitWriteStream = require('await-stream-ready').write;
let url = 'https://api.vc.bilibili.com/link_draw/v1/doc/doc_list?uid=6823116&page_num=0&page_size=500&biz=all';
async function getUrlAndName(){
// 用于存儲返回值
let imgAddrArray = [];
// 請求資源
const res = await request.get(url)
.set({
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
}).timeout({ response: 5000, deadline: 60000 });
let res_json = JSON.parse(res.text);
let res_info = res_json.data.items;
res_info.map((res_info_value, res_info_index)=>{
let pic_description = res_info_value.title+res_info_value.description;
res_info_value.pictures.map((pic_url, pic_index)=>{
let url_list = pic_url.img_src.split(".");
let file_ext = url_list[url_list.length-1];
imgAddrArray.push([pic_url.img_src, pic_description+"-"+pic_index+Date.parse(new Date())+"."+file_ext]);
});
});
return imgAddrArray;
}
// 下載圖片
async function download(imgAndName){
// 拼接出, 當(dāng)前資源的文件名
let filename = imgAndName[1];
// 創(chuàng)建讀取流
const rs = request.get(imgAndName[0]);
const ws = fs.createWriteStream(path.join(__dirname, 'images', filename));
let bilibili_stream = rs.pipe(ws);
ws.on('finish', ()=>{
console.log(filename+"<==爬取完成");
return filename;
});
await awaitWriteStream(bilibili_stream);
}
// 創(chuàng)建文件夾, 控制整體流程
async function init(){
// 創(chuàng)建文件夾
try{
await fs.mkdir(path.join(__dirname, 'images'));
}
catch(err){
console.log("==>", err);
}
let imgAddrArray = await getUrlAndName();
for (let i=0; i<imgAddrArray.length; i++){
try{
let result = await download(imgAddrArray[i]);
}
catch(err){
console.log("err==>", err);
}
}
}
init();
爬取完成后,B站官方壁紙共412張, 占用700M空間, 壁紙可以通過在公眾號 0加1后臺 回復(fù) 嗶哩嗶哩壁紙 獲取412張官方壁紙