js提取指定网站内容( 知识点开发所示:核心代码解析)

优采云 发布时间: 2022-04-05 16:20

  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人工客服


线