nodejs的爬虫框架搞有什么用

  介绍

这篇文章主要介绍了nodejs的爬虫框架搞有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强>前言

早就听过爬虫,这几天开始学习nodejs,写了个爬虫https://github.com/leichangchun/node-

使用到这几个点:

1,节点的核心模块,文件系统

2,用于http请求的第三方模块,搞

3,用于解析DOM的第三方模块,恭喜恭喜

几个模块详细的讲解及API请到各个链接查阅,演示中只有简单的用法。

<强>准备工作

使用npm管理依赖,依赖信息会存放在包中。json中

//安装用到的第三方模块   cnpm  install ,,节省superagent 恭喜恭喜

引入所需要用到的功能模块

//引入第三方模块,搞用http请于求,加油用于解析DOM   const  request =,要求(& # 39;搞# 39;);   const  cheerio =,要求(& # 39;加油# 39;);   const  fs =,要求(& # 39;fs # 39;);

<强>请求+解析页面

想要爬到博客园首页的内容,首先要请求首页地址,拿到返回的html,这里使用搞进行http请求,基本的使用方法如下:

request.get (url)   ,,,,,指标(错误,res){最终   ,,,,,//do  something ,,,,   }

向指定的网址发起得到请求,请求错误时,会有误差返回(没有错误时,误差为零或未定义),res为返回的数据。

拿到html内容后,要拿到我们想要的数据,这个时候就需要用好呀解析DOM了,加油要先加载目标html,然后再进行解析,API和jquery的API非常类似,熟悉jquery上手非常快。直接看代码实例

//目标链接,博客园首页   let  targetUrl =, & # 39; https://www.cnblogs.com/& # 39;;//用来暂时保存解析到的内容和图片地址数据   let  content =, & # 39; & # 39;;   let  imgs =, [];//发起请求   request.get (targetUrl)   ,,,指标(最终,(错误,res)=祝辞,{   ,,,,,如果(错误){,//请求出错,打印错误,返回   ,,,,,,,console.log(错误)   ,,,,,,,返回;   ,,,,,}   ,,,,,//,加油需要先load  html   ,,,,,let 美元,=,cheerio.load (res.text);   ,,,,,//抓取需要的数据,每个为加油提供的方法用来遍历   ,,,,,美元(& # 39;# post_list  .post_item& # 39;) . each(,(指数(元素)=祝辞,{   ,,,,,,,//分析所需要的数据的DOM结构   ,,,,,,,//通过选择器定位到目标元素,再获取到数据   ,,,,,,,let  temp =, {   ,,,,,,,,,& # 39;标题& # 39;,:,美元(元素);(& # 39;h4 一个# 39;)。text (),   ,,,,,,,,,& # 39;作者& # 39;,:,美元(元素);(& # 39;.post_item_foot 祝辞,一个# 39;)。text (),   ,,,,,,,,,& # 39;阅读数& # 39;,,,+ $(元素);(& # 39;.article_view 一个# 39;)。text () .slice (3, 2),   ,,,,,,,,,& # 39;推荐数& # 39;,:,+ $(元素);(& # 39;.diggnum& # 39;)。text ()   ,,,,,,,}   ,,,,,,,//拼接数据   ,,,,,,,content  +=, JSON.stringify(临时),+,& # 39;\ n # 39;;   ,,,,,,,//同样的方式获取图片地址   ,,,,,,,如果(美元(元素);(& # 39;img.pfs& # 39;) .length 祝辞,0){   ,,,,,,,,,imgs.push($(元素);(& # 39;img.pfs& # 39;) .attr (& # 39; src # 39;));   ,,,,,,,}   ,,,,,});   ,,,,,//存放数据   ,,,,,mkdir(& # 39;。/内容# 39;,saveContent);   ,,,,,mkdir(& # 39;。/一个# 39;,downloadImg);   ,,,})

<强>存储数据

上面解析DOM之后,已经拼接了所需要的信息内容,也拿到了图片的URL,现在就进行存储,把内容存放到指定目录的txt文件中,而且下载图片到指定目录

先创建目录,使用nodejs核心的文件系统

//创建目录   function  mkdir (_path,回调){   如果才能(fs.existsSync (_path)) {   ,,,console.log (“$ {_path}目录已存在的)   }{其他才能   ,,,fs.mkdir (_path(错误)=祝辞,{   ,,,,,如果(错误){   ,,,,,,,return  console.log(“创建$ {_path}目录失败”);   ,,,,,}   ,,,,,console.log(“创建$ {_path}目录成功”)   ,,,})   ,,}   ,,回调();//没有生成指定目录不会执行   }

有了指定目录之后,可以写入数据了,txt文件的内容已经有了,直接写入就可以了使用writeFile ()

//将文字内容存入txt文件中   function  saveContent (), {   fs.writeFile才能(& # 39;。/内容/content.txt& # 39;, content.toString ());   }

nodejs的爬虫框架搞有什么用