总体步骤
一、引入https或者http模块
1. 引入https还是http模块取决于爬取的目标网站是不是https还是http
发送http或者https请求
// 引入https模块
const https = require('https')
const req = https.request('https://pic.netbian.com/',res=>{
let chunks = []
const HOST = 'https://pic.netbian.com/'
// 监听网页数据
res.on('data', chunk=>{
chunks.push(chunk)
})
// 监听网页数据完成
res.on('end', ()=>{
const htmlStr = Buffer.concat(chunks).toString('utf-8')
console.log(htmlStr )
})
//发送http请求
req.end()
二、引入cheerio库对网页内容进行分析
// 引入网页解析分析库
const cheerio = require('cheerio')
// 监听网页数据完成
res.on('end', ()=>{
const htmlStr = Buffer.concat(chunks).toString('utf-8')
const $ = cheerio.load(htmlStr);
})
三、提取网页关键信息
// 遍历网页图片
let imgs = Array.prototype.map.call($('.wrap #main .slist li a span > img '),item=> encodeURI(HOST + $(item).attr('src')))
四、引入download库下载图片
// 引入下载网络资源库
const download = require('download')
// 下载图片
Promise.all(imgs.map(x => download(x,'dist'))).then(()=>{
console.log('下载完成');
})
五、总体代码
// 引入https模块
const https = require('https')
// 引入网页解析分析库
const cheerio = require('cheerio')
// 引入下载网络资源库
const download = require('download')
const req = https.request('https://pic.netbian.com/',res=>{
let chunks = []
const HOST = 'https://pic.netbian.com/'
// 监听网页数据
res.on('data', chunk=>{
chunks.push(chunk)
})
// 监听网页数据完成
res.on('end', ()=>{
const htmlStr = Buffer.concat(chunks).toString('utf-8')
const $ = cheerio.load(htmlStr);
// 遍历网页图片
let imgs = Array.prototype.map.call($('.wrap #main .slist li a span > img '),item=> encodeURI(HOST + $(item).attr('src')))
// 下载图片
Promise.all(imgs.map(x => download(x,'dist'))).then(()=>{
console.log('下载完成');
})
})
})
req.end()