nodeJS实现简易爬虫
程序员文章站
2024-02-02 19:53:16
nodeJS实现简易爬虫 需求:使用nodeJS爬取昵图网某个分类下的图片并存入本地 + 运用nodeJS自带系统模块http、fs 示例代码: ......
nodejs实现简易爬虫
需求:使用nodejs爬取昵图网某个分类下的图片并存入本地
-
运用nodejs自带系统模块http、fs
示例代码:
var http =require('http'); var fs =require('fs'); var curentpage=1; //当前图片页数 var maxcurentpage=5;//最大页数 //获取图片地址 function getdata(){ let url = 'http://www.nipic.com/photo/xiandai/jiaotong/index.html?page='+curentpage http.get(url,(res)=>{ var data = ''; res.on('data',(a)=>{ data+=a.tostring(); }) res.on('end',()=>{ let reg = /<img src="(.+?)" data-src="(.*?)" alt="(.*?)" \/>/g let arr=[]; while (reg.exec(data)){ arr.push(reg.exec(data)[2]); } for(i in arr){ (function(i){ settimeout(()=>{ getimg(arr[i]) },500*i) })(i) } if (curentpage < maxcurentpage){ curentpage++; arguments.callee(); } }) }) } //图片写入img文件夹 function getimg(url){ let u = url.replace(/\/pic\//,'/file/') .replace(/_4.jpg/,'_2.jpg'); http.get(u,(res)=>{ let name = new date().gettime(); let stream = fs.createwritestream('./img/' + name + '.png'); res.pipe(stream); }) } getdata();