js抓取网页内容( 这了,更多相关Node.js爬取图片(组图))

优采云 发布时间: 2022-04-07 20:01

  js抓取网页内容(

这了,更多相关Node.js爬取图片(组图))

  Node.js实现爬取网站图片的示例代码

  目录编写核心代码示例截图涉及知识点

  开发一个小型爬虫,涉及的知识点如下:

  关于cheerio

  什么是cheerio?

  Cheerio 是 jQuery 核心实现的特定于服务器的、快速、灵活的实现。主要用于服务端解析html。特点如下:

  安装cheerio

  首先在命令行下切换到程序目录,然后输入安装命令进行安装,如下:

  cnpm install cheerio

  安装过程如下:

  

  准备好工作了

  在编写爬虫之前,首先需要对目标内容进行分析。这次需要爬取某个网站,星空类型的图片内容。经过分析发现,所有的图片都是ul下每个li中的a标签在img里面,这次只需要解析出img的src属性就可以得到图片的下载路径。如下:

  

  核心代码

  经过以上分析,代码通过Node.js编写,分两步获取所有图片的url路径,即解析所有目标img元素的src属性。然后下载特定图像并保存。

  引用所需的功能模块如下:

  var https = require('https');

var cheerio = require('cheerio');

var fs = require('fs');

  获取并解析html页面内容如下:

<p>//爬取的网址

var addrs=['https://www.*****.com/topic/show_27202_1.html','https://www.******.com/topic/show_27202_2.html','https://www.*****.com/topic/show_27202_3.html'];

var logger = fs.createWriteStream('./download/log.txt',{flags:'a+',autoClose:'true'});

for(i in addrs){

(function(num){

var addr = addrs[num];

//创建目录

var p1 = new Promise(function(resolve,reject){

fs.access('./download',function(err){

if(err){

fs.mkdir('./download',function(e){

if(e){

console.log('创建失败');

}

});

}else{

resolve("success");

}

});

});

p1.then(function(datas){

var html='';

var p2 = new Promise(function(resolve,reject){

https.get(addr,function(res){

res.on('data',function(data){

html+=data.toString();

})

res.on('end',function(){

resolve("success");

});

});

});

p2.then(function(data){

//下载完成后,进行解析

const $ =cheerio.load(html);

var lis = $('#img-list-outer').find('li');

for(var j=0;j

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线