微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nodejs实现爬取网站图片功能

通过实例给大家讲解nodejs实现爬取网站图片功能,以下就是全部内容

原理:

爬虫是最明显的IO密集型应用场景,显然用node,使得I/O等待开销小数据挖掘比较方便

借助express模块来搭建node服务

并使用request模块获取目标页面HTML代码

下载cheerio模块对HTML代码做处理(cheerio类似jQuery的语法,所以好用又方便)

环境配置:

rush:xhtml;"> npm install express request cheerio --save

(1)引入各个模块

rush:xhtml;"> var http = require('http'); var request = require('request); var cheerio = require('cheerio'); var fs = require('fs'); //用来操作文件 var url = 'https://movie.douban.com/cinema/Nowplaying/beijing/' //定义要爬的页面

(2)发送请求

rush:xhtml;"> http.get(function(res){ var html = ''; var titles = []; res.setEncoding('utf-8') //防止中文乱码 res.on('data',function(chunk){ html += chrunk; //监听data事件 每次取一块数据 }) res.on('end',function(){ var $ = cheerio.load(html); //获取数据完成后,解析html //将获取图片存到images文件夹中 $('.mod-bd img').each(function(index,item){ //获取图片属性 var imgName = $(this).parent().next().text().trimg() var imgfile = imgName + '.jpeg'; var imgSrc = $(this).attr('src') //采用request模块,向服务器发起请求 获取图片资源 request.head(imgSrc,function(error,res,body){ if(error){ console.log('失败了') } }); //通过管道的方式用fs模块将图片写到本地的images文件下 request(imgSrc).pipe.(fs.createWriteStream('./images/' + imgfile)); })

})
})

原文地址:https://www.jb51.cc/nodejs/34697.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐