node爬取某個網站的圖片,並下載到本地

const cheerio = require("cheerio");
const axios = require("axios");
const fs = require("fs");
const path = require("path");

let httpUrl = "http://www.netbian.com/dongman/index.htm";

let dirName = path.join(__dirname,"images");
if(fs.existsSync(dirName)){
    console.log("文件夾已存在");
}else{
    fs.mkdir(dirName,()=>{
        console.log("文件夾創建成功");
    });
}

async function getData(){
    let htmlData = await axios.get(httpUrl);
    let $ = cheerio.load(htmlData.data);
    $("#main .list ul li a img").each(async (index,item)=>{//定位到當前圖片元素img
        let imgUrl = $(item).attr("src");//獲取到當前的img路徑
        let srcFile = path.join(dirName,path.parse(imgUrl).base);
        let ws = fs.createWriteStream(srcFile);
        axios.get(imgUrl,{responseType:"stream"}).then((res)=>{//請求當前圖片
            res.data.pipe(ws);//將請求的圖片數據copy到srcFile文件路徑中
            res.data.on("close",()=>{
                console.log("圖片" + path.parse(imgUrl).base + "已經下載完成");
                ws.close();
            })
        })
    })
}

getData();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章