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

  

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

  

首先是依赖选择:

  

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

  

代码块如下:

     //引入依赖//https请求      const https=要求(“https”);//简称节点版的jquery      const加油=要求('加油');//解决防止出现乱码      const iconv=要求(“iconv-lite”)//http请求      const请求=要求(“请求”);//负责读写文件      const fs=要求(fs);//处理文件路径      const path=要求(“路径”);      

爬取路径:

  

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

  

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

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

初步实现:

  

网站的基本构成

  

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

  

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

  

核心代码:

     //方法对象      const util={            getsrc:函数(url) {      https。get (url, res=比;{      const块=[];      res.on(“数据”,块=比;{//块里面存储着网页的html内容      chunks.push(块);      });      res.on(“结束”,e=比;{            让所有=[];//编码格式      让html=iconv.decode (Buffer.concat(块),use utf8);      让美元=加油。负载(html、{decodeEntities:假});//标签遍历      $("图img”)。每个(函数(国际防务展,元素){      让元素=美元(元素);      让srcset=elent.attr美元(“srcset”);      如果($ srcset !=未定义){      让src=https://www.yisu.com/zixun/($ srcset.split (" ") .pop ()) .split (“& # 63;”) [0];      ALL.push ({      src: src      })      }      });//遍历数组每个后面加jpg      所有人。forEach(项=比;{      util.downloadimg(项目。src, path.basename (item.src) +“jpg”功能(){      console.log (path.basename (item.src) + " . jpg ");      });      })      });            res.on(‘错误’,e=比;{      控制台。日志(“错误:”+ e.message);      });      });      },//运行主函数      主要:函数(){      console.log (“- - - - - - - - - - - - - - -”);      util.getsrc (url);      },//下载图片函数      downloadimg:函数(src, srcname回调){//http请求      请求。头(src,函数(呃,res,身体){      如果(err) {      控制台。日志(“犯错:”+错);      返回错误;      }      控制台。日志(“res:”+ res);//保存数据,这里是防止未来得及记录数据又开始读取数据而导致数据丢失      请求(src) .pipe (fs.createWriteStream”。/img/' + srcname))。(“关闭”,回调);      });      }      }//主函数       util.main ();      

然后就可以运行节点xxx。js看运行结果。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

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