使用nodejs spider爬取图片及数据实现
nodejs如何爬取数据+图片
nodejs爬取数据
当我们在做一些网站的时候,就需要用到一些数据,但是网上有,一点点的复制又比较麻烦,这是我们的nodejs就可以帮我们完成想要的数据
废话就不多说了,我直接上你们想要的
今天工作不是太忙就爬取了一个天气的网站
效果图
核心模块
首先我们需要引入一些需要的核心模块
//引入核心模块 var http = require("http"); var fs = require("fs"); var cheerio = require("cheerio");
接下来我们需要想要爬取的网站的网址
const news = "http://www.weather.com.cn/weather/101010100.shtml";
创建服务
下面我们创建服务,用来接收数据和数据本地存储
//创建服务 var strHtml = ""; var results = []; http.get(news,(res)=>{ //触发接收事件data res.on("data",(chunk)=>{ //接收数据,将数据一点点的追加到没我们定义的空字符串中 strHtml+=chunk; }); //触发接收完成时间end res.on("end",()=>{ //cheerio类似于jQuery我们在用他之前必须载入文档用(load方法) var $ = cheerio.load(strHtml); var menew = []; //遍历查出来的文本数据 $("#7d li").each((index,item)=>{ //定义一个空数组,将数据内容存在里面 menew.push({id:index,text:$(item).text()}); }); //转换JSON字符串 var res = JSON.stringify(menew); //储存到本地 fs.writeFile("./data1.json",res,(err)=>{ if(!err) console.log("成功写入"); }) }); });
nodejs爬取图片
这是前几天爬取的百度图片首页的几张图
效果图
核心模块
首先我们也需要引入一些需要的核心模块
//引入核心模块 var http = require("http"); var https = require("https"); var fs = require("fs"); var cheerio = require("cheerio");
接下来我们需要想要爬取的网站的网址
const news = "http://image.baidu.com/";
首先我们需要将图片的URL地址获取下来
//创建服务 http.get(imgurl,(res)=>{ //触发接收事件data var imageData = ""; res.on("data",(chunk)=>{ //接收数据,将数据一点点的追加到没我们定义的空字符串中 imageData+=chunk; }); //触发接收完成时间end res.on("end",()=>{ //cheerio类似于jQuery我们在用他之前必须载入文档用(load方法) var $ = cheerio.load(imageData); var ImgData = []; //遍历查出来的文本数据 $(".img_pic_wrap_layer img").each((index,item)=>{ //定义一个空数组,将数据内容存在里面 ImgData.push($(item).attr("src")); }); //循环调用图片函数 for(var i =0 ; i < ImgData.length ; i ++){ saveImage(ImgData[i]); } }); });
封装函数
然后我们要根据图片URL地址保存成图片,我将它封装了一个函数
//封装图片函数 function saveImage(imageUrl){ //创建服务 https.get(imageUrl,(res)=>{ //二进制 res.setEncoding("binary"); var imageData=""; //将图片加载到内存中 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) throw err; console.log("保存成功!!!") }) }) }) }
不是太懂的可以去GitHub上面看源码
以上就是nodejs_spider爬取图片+数据的详细内容,更多关于nodejs_spider爬取图片+数据的资料请关注脚本之家其它相关文章!
相关文章
Express 框架中使用 EJS 模板引擎并结合 silly-datetime
这篇文章主要介绍了Express 框架中使用 EJS 模板引擎并结合 silly-datetime 库进行日期格式化的实现方法,结合具体实例形式分析了express框架引入EJS模版以及导入 silly-datetime 库的格式化方法传递给EJS模版使用的相关操作技巧,需要的朋友可以参考下2023-05-05Node.js利用Express实现用户注册登陆功能(推荐)
这篇文章主要介绍了Node.js利用Express实现用户注册登陆功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-10-10Node.js 8 中的 util.promisify的详解
本篇文章主要介绍了Node.js 8 中的 util.promisify的详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-06-06
最新评论