当前位置: 首页 > 后端技术 > Node.js

nodejs_spider爬取图片+数据

时间:2023-04-03 10:30:04 Node.js

nodejs如何爬取数据+图片nodejs爬取数据我们在搭建一些网站的时候,需要用到一些数据,但是网上有一些数据,一点点复制比较麻烦。这是我们的nodejs可以帮我们完成我们想要的东西你要的数据我就不废话了,直接上你要的,今天工作也不是很忙,所以爬了一个网站效果图的天气。首先,我们需要引入一些需要的核心模块//引入核心模块varhttp=require("http");varfs=require("fs");varcheerio=require("cheerio");接下来我们需要我们要爬取的网站的URLconstnews="http://www.weather.com.cn/weather/101010100.shtml";接下来,我们创建一个接收数据的服务,并将数据存储在本地//创建服务varstrHtml="";varresults=[];http.get(news,(res)=>{//触发接收事件数据res.on("data",(chunk)=>{//接收数据,将数据附加到我们定义的空字符串strHtml+=chunk;});//触发接收完成时间endres.on("end",()=>{//cheerio类似于jQuery,我们在使用之前必须加载文档(加载方法)var$=cheerio.load(strHtml);varmenew=[];//遍历找到的文本数据$("#7dli").each((index,item)=>{//定义一个空数组,将数据内容存入其中menew.push({id:index,text:$(item).text()});});//转换JSON字符串varres=JSON.stringify(menew);//保存到本地fs.writeFile("./data1.json",res,(err)=>{if(!err)console.log("写入成功");})});});nodejs爬取图片这是前几天爬取百度图片首页的效果图首先我们还需要引入一些需要的核心模块//引入核心模块varhttp=require("http");varhttps=require("https");varfs=require("fs");varcheerio=require("cheerio");接下来我们需要我们要抓取的网站的URLconstnews="http://image.baidu.com/";首先我们需要获取图片的URL地址//创建一个服务http.get(imgurl,(res)=>{//触发接收事件数据varimageData="";res.on("data",(chunk)=>{//接收数据,给我们没有定义的空字符串附加数据imageData+=chunk;});//触发接收完成时间endres.on("end",()=>{//cheerio类似于jQuery,我们在使用之前必须加载文档(加载方法)var$=cheerio.load(imageData);varImgData=[];//遍历检测到的文本数据$(".img_pic_wrap_layerimg").each((index,item)=>{//定义一个空数组,放数据内容里面有ImgData.push($(item).attr("src"));});//在a中调用图片函数循环for(vari=0;i{//binaryres.setEncoding("binary");varimageData="";//加载图片到内存res.on("data",(shuju)=>{imageData+=shuju;});//图片加载保存后res.on("end",()=>{//创建文件夹,如果不选择创建if(!fs.existsSync("./img")){fs.mkdirSync("./img");};//保存图像fs.writeFile("img/"+Math.random()+'.png',imageData,"binary",(err)=>{if(err)throwerr;console.log("成功保存!!!")})})})}如果你不太了解,可以去GitHub看源码地址