宝哥软件园

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

编辑:宝哥软件园 来源:互联网 时间:2021-08-22

我学了【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查看运行结果。

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

更多资讯
游戏推荐
更多+