首页 > 开发 > JS > 正文

nodejs实现爬取网站图片功能

2024-05-06 16:41:24
字体:
来源:转载
供稿:网友

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

原理:

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

借助express模块来搭建node服务

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

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

环境配置:

npm install express request cheerio --save

(1)引入各个模块

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)发送请求

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));    })      })})
 

注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表