我学了【node.js】几天了,打算写写练手;作为一个后端玩家,写的时候还是觉得有点眼熟。Emmm ~ ~货’不多说了,动手吧.
首先是依靠选择:
代码块如下:
//引入依赖性//https request const https=require(' https ');//jquery const chef=require(简称“chef”)的节点版本;//解决防止乱码const iconv=require(' iconv-lite ')/http request const request=require(' request ')的问题;//负责读写文件const fs=require(' fs ');//处理文件路径const path=require(' path ');爬网路径:
代码块:(PS:这里单独拿出来是因为推荐这个站的素材,可以上去看看~ ~)
const URL=' https://unsplash.com/';初步实现:
网站的基本构成
这里主要是直接确认需要的【img】标签和外部【图】,然后就可以直接开始工作了.
核心代码:
//方法对象const util={ get src : function(URL){ https . get(URL,RES={ const chunks=[];Res.on('data ',chunk={//chunk)存储网页的html内容,chunk . push(chunk);});res.on('end ',e={ let ALL=[];//编码格式让html=iconv . decode(buffer . concat(chunks),' utf8 ');let $=cheerio.load(html,{ decadentity : false });//标记遍历$ ('figure img ')。每个(函数(idex,elent){ let $ elent=$(elent);let $ src set=$ elent . attr(' src set ');if ($srcset!=undefined){ let src=($ src set . split(',')。pop())。拆分('?')[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);},//下载图片函数downloadimg3360函数(src,src名称,回调){//http request . head(src,函数(err,RES,body){ if(err){ console . log(' err 3360 ' err);返回false} console . log(' RES : ' RES);//保存数据,这里是为了防止以后由于数据记录和读取造成的数据丢失。请求(src)。管道(fs。createwritestream('。/img/'src名称))。on ('close ',回调);});}}//main函数util . main();然后可以运行node xxx.js查看运行结果。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。