爬虫,来自百度百科的解释:
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动爬取万维网信息的程序或脚本.
通俗来讲,假如你需要互联网上的信息,如商品价格,图片视频资源等,但你又不想或者不能自己一个一个去打开网页收集,这时候你便写了一个程序,让程序按照你指定好的规则去互联网上收集信息,这便是爬虫,我们熟知的百度,谷歌等搜索引擎背后其实也是一个巨大的爬虫;
那现在就来看一下我写的代码吧,
var http = require("http");
var https = require("https");
var fs = require("fs");
var cheerio = require("cheerio");
var url="https://www.vcg.com/sets/521475526"
let str=[];
https.get(url,function(res){
var chunks="";
var results=[];
res.on("data",function(chunk){
//检查数据是不是可行的;
chunks+=chunk
})
res.on("end",function(){
// console.log(chunks);
var $=cheerio.load(chunks);
for(let i=1; i<30;i++){
let htm=`#imageContent > div > section > figure:nth-child(${i}) > a > img`
let metr= $(htm).attr('src');
str.push("http:"+metr);
}
console.log(str[1])
for(let i=1;i<30;i++){
saveImage(str[i])
}
})
})
function saveImage(imageUrl){
console.log(imageUrl);
http.get(imageUrl, function (res) {
res.setEncoding('binary'); //二进制(binary)
var imageData ='';
res.on('data',function(data){ //图片加载到内存变量
imageData += data;
}).on('end',function(){ //加载完毕保存图片
if(!fs.existsSync("./images")){
fs.mkdirSync("./images");
}
fs.writeFile('images/'+Math.random()+'.png',imageData,'binary',function (err) { //以二进制格式保存
if(err) throw err;
console.log('保存成功');
});
});
});
}
这段代码实现的效果是:下载三十张图片;
实现的过程是:
1.找到你想要下载的图片的地址
2.通过node中的内置模块fs中的writeFile方法写入即可;
我这段代码中用的的模块有fs,Http与cheerio;
说实话我这段代码应该算不上爬虫,如果你想要看更加详细node爬虫的话请去往这个地址:https://www.cnblogs.com/mybilibili/p/10577403.html