学习【节点。js】也有几天时间了,所以打算写着练练手;索然我作为一个后端的选手,写起来还有那么一丝熟悉的感觉.emmm ~ ~“货”不多讲,开搞........
首先是依赖选择:
代码块如下:
//引入依赖//https请求 const https=要求(“https”);//简称节点版的jquery const加油=要求('加油');//解决防止出现乱码 const iconv=要求(“iconv-lite”)//http请求 const请求=要求(“请求”);//负责读写文件 const fs=要求(fs);//处理文件路径 const path=要求(“路径”);
爬取路径:
代码块(PS:这里单独拿出来是因为这个站的素材比较推荐,可以上去瞅瞅~ ~)
const url=' https://unsplash.com/';
初步实现:
网站的基本构成
这里主要是我们直接确认一下需要的【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看运行结果。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。