最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Node.js实现简单的爬取的示例代码

来源:动视网 责编:小采 时间:2020-11-27 21:54:26
文档

Node.js实现简单的爬取的示例代码

Node.js实现简单的爬取的示例代码:学习【node.js】也有几天时间了,所以打算写着练练手;索然我作为一个后端的选手,写起来还有那么一丝熟悉的感觉。emmm~~ 货'不多讲 ,开搞........ 首先是依赖选择: 代码块如下: //引入依赖 //https请求 const https = require('
推荐度:
导读Node.js实现简单的爬取的示例代码:学习【node.js】也有几天时间了,所以打算写着练练手;索然我作为一个后端的选手,写起来还有那么一丝熟悉的感觉。emmm~~ 货'不多讲 ,开搞........ 首先是依赖选择: 代码块如下: //引入依赖 //https请求 const https = require('


学习【node.js】也有几天时间了,所以打算写着练练手;索然我作为一个后端的选手,写起来还有那么一丝熟悉的感觉。emmm~~ ‘货'不多讲 ,开搞........

首先是依赖选择:

代码块如下:

//引入依赖

//https请求

const https = require('https');

//简称node版的jquery

const cheerio = require('cheerio');

//解决防止出现乱码

const iconv = require('iconv-lite')

//http请求

const request = require("request");

//负责读写文件

const fs = require('fs');

//处理文件路径

const path = require('path');

爬取路径:

代码块:(PS:这里单独拿出来是因为这个站的素材比较推荐,可以上去瞅瞅~~)

const url = 'https://unsplash.com/';

初步实现:

网站的基本构成

这里主要是我们直接确认一下需要的【img】标签,以及外面的【figure】,然后直接就可以开工了....

核心代码:

//方法对象

const util = {

 

 getsrc: function (url) {

 https.get(url, res => {

 const chunks = [];

 res.on('data', chunk => {

 // chunks里面存储着网页的html内容

 chunks.push(chunk);

 });

 res.on('end', e => {

 

 let ALL = [];

 //编码格式

 let html = iconv.decode(Buffer.concat(chunks), 'utf8');

 let $ = cheerio.load(html, { decodeEntities: false });

 

 //标签遍历

 $("figure img").each(function (idex, elent) {

 let $elent = $(elent);

 let $srcset = $elent.attr("srcset");

 if ($srcset != undefined) {

 let src = ($srcset.split(',').pop()).split('?')[0];

 ALL.push({

 src: src

 })

 }

 });

 //遍历数组 每个后面加.jpg

 ALL.forEach(item => {

 util.downloadimg(item.src, path.basename(item.src) + ".jpg", function () {

 console.log(path.basename(item.src) + ".jpg");

 });

 })

 });

 

 res.on('error', e => {

 console.log('Error: ' + e.message);

 });

 });

 },

 

 //运行主函数

 main: function () {

 console.log("------start--------");

 util.getsrc(url);

 },

 //下载图片函数

 downloadimg: function (src, srcname, callback) {

 

 //http请求

 request.head(src, function (err, res, body) {

 if (err) {

 console.log('err:' + err);

 return false;

 }

 console.log('res: ' + res);

 //保存数据,这里是防止未来得及记录数据又开始读取数据而导致数据丢失

 request(src).pipe(fs.createWriteStream('./img/' + srcname)).on('close', callback);

 });

 }

}

 

//主函数

util.main();

然后就可以运行 node xxx.js 看运行结果。

文档

Node.js实现简单的爬取的示例代码

Node.js实现简单的爬取的示例代码:学习【node.js】也有几天时间了,所以打算写着练练手;索然我作为一个后端的选手,写起来还有那么一丝熟悉的感觉。emmm~~ 货'不多讲 ,开搞........ 首先是依赖选择: 代码块如下: //引入依赖 //https请求 const https = require('
推荐度:
标签: js 代码 例子
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top