目標網站:妹子圖(點進去別忘了回來~~)
項目功能:批量下載該網站的相冊
姊妹項目:批量爬取並下載頭條視頻ios
命令
npm i npm start
配置文件
// 配置相關 module.exports = { originPath: 'http://www.mzitu.com', // 請求地址 savePath: 'E:/meizi', // 存放路徑 maxPage: 20 // 可爬取的最大頁碼 }
Axios: 發起 get 請求,獲取頁面和圖片 stream
// 獲取頁面 async getPage (url) { return { res: await axios.get(url) } } // 把獲取的文件寫入本地 await axios({ method: 'get', url: imageSrc, responseType: 'stream', headers }).then(function(response) { response.data.pipe(fs.createWriteStream(fileName)) })
Cheerio: 覆蓋了 jQuery dom 部分核心 API,可操做獲取的文檔對象
// res.data: 獲取的文檔對象 let list = [] const $ = cheerio.load(res.data) // 獲取文檔中全部的相冊 $('#pins li a').children().each((index, item) => { let album = { name: item.attribs.alt, // 相冊名稱 url: item.parent.attribs.href // 相冊地址 } list.push(album) })
fs.createWriteStream: 保存圖片到本地
await axios({ method: 'get', url: imageSrc, responseType: 'stream', headers }).then(function(response) { response.data.pipe(fs.createWriteStream(fileName)) })
此爬蟲僅用於我的學習,若是侵權,即刻刪除!git