原生模块爬虫
//原生http模块,用于请求文件或者创建服务器varhttp=require("http");//原生fs模块,用于读写文件varfs=require("fs")//调用cheerio模块,类似于jqueryvarcheerio=require("cheerio")//调用mysql第三方模块varmysql=require("mysql")//进行数据库连接varconnection=mysql.createConnection({host: 'localhost',//localhostuser: 'test',password: '123456789',database: 'laoyao'});//执行连接connection.connect();//此函数用于获取需要被爬虫的网页DOM结构functiondownload(url,callback){http.get(url,function(res){vardata="";res.on('data',function(chunk){data+=chunk})res.on('end',function(){callback(data);})})}download("http://www.mmjpg.com/",function(data){//将网页信息交给cheerio处理,类似于jquery处理DOM结构var$=cheerio.load(data);varimgArr=[];//遍历图片信息,并执行存储$('img').each(function(index,ele){varsrc=$(ele).attr("src");//把数据插入到数据库connection.query('INSERT INTO `meizi`(`src`) VALUES ("'+src+'")',function(error,results,fields){if(error)throwerror;});imgArr.push(src);})//执行下载图片downloadImg(imgArr)})vari=0;functiondownloadImg(imgArr){varlenth=imgArr.length;varwriterStream=fs.createWriteStream('img/'+i+'.jpg');http.get(imgArr[i],function(res){res.pipe(writerStream);if(i<lenth){i++;//递归执行图片下载,确保每一张图片下载完再下载下一张downloadImg(imgArr)}else{return;}})}
原生模块爬虫