Node.js爬蟲PTT表特版的照片

楊喬宇
Dec 5, 2020

--

今天看到我老婆上表特版,覺得很開心,想把老婆存在電腦裡好好珍藏。

照片連結存在<a>裡面,href 和 text 都可以拿來使用,這邊我抓的是 text 的資訊。

在這之前,先設置一個資料夾,專門存放下載好的照片。

fs.exists('./picture/', function(exists){ //如果資料夾不存在就設置資料夾
if (exists){
console.log('picture dir exists.');
} else {
fs.mkdir('./picture/');
console.log('mkdir picture');
}
});

取得連結之後,根據每個連結最後一段文字,為檔案進行命名。注意只要搜集JPG的檔案就好。

if (href.search('.jpg') != -1){   //只抓取jpg檔案
console.log(href);
const split_name = href.split('/'); //以連結最後一段當做檔案的命名
const filename = split_name[split_name.length-1];
console.log(filename);
}

命名好之後就可以寫入檔案了。

var readStream = request(href);   //對連結要求存取
var writeStream = fs.createWriteStream('./picture/'+filename);
//寫入電腦
readStream.pipe(writeStream);
readStream.on('end', function() {
console.log(filename + '下载成功');
});
readStream.on('error', function() {
console.log("错误信息:" + err)
})
writeStream.on("finish", function() {
console.log(filename + "寫入成功");
writeStream.end();
});

這樣完成了,可以跟老婆一起過聖誕節。完整程式碼如下:

參考連結

--

--

No responses yet