手机版

由节点实现的爬虫功能示例

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

本文阐述了由节点实现的爬虫功能。分享给大家参考,如下:

Node是一种服务器端语言,所以你可以像python一样抓取网站。接下来,使用node抓取博客公园,获取所有章节信息。

第一步:创建爬网文件,然后npm初始化。

第二步:创建crawl.js文件。爬行整个页面的简单代码如下:

var http=require(' http ');var URL=' http://www . cn blogs.com ';http.get(url,function(RES){ var html=' ';res.on('data ',function(data){ html=data;});res.on('end ',function(){ console . log(html);});}).on ('error ',function () {console.log('获取课程结果时出错!');});也就是引入http模块,然后使用http对象的get request,也就是一旦运行,就相当于节点服务器发送get request请求这个页面,然后通过res返回,其中on binding data事件用来持续接收数据,最后我们在结束的时候在后台打印出来。

这只是整页的一部分。我们可以回顾一下这个页面上的元素,发现它们确实是一样的

我们只需要爬上章节标题和每个章节的信息。

第三步:介绍cheerio模块,如下:(只需安装在gitbash中,cmd总是有问题)

引入Cnpm install chef-save-dev是为了方便我们操作dom,就像jQuery一样。

第四步:操作dom获取有用的信息。

var http=require(' http ');var cherio=require(' cherio ');var URL=' http://www . cn blogs.com ';函数filter data(html){ var $=cheerio . load(html);var items=$('。post _ item’);var结果=[];items . each(function(item)){ var tit=$(this)。查找('。title lnk’)。text();var aut=$(this)。查找('。浅蓝色’)。text();var one={ title: tit,author : aut };result.push(一);});返回结果;}函数print infos(all infos){ all infos . foreach(function(item){ console . log(' article title ' item[' title ']' \ n ' article author ' item[' author ']' \ n ' ' \ n ');});}http.get(url,function(RES){ var html=' ';res.on('data ',function(data){ html=data;});res.on('end ',function(data){ var allinofos=filter data(html);print infos(all infos);});}).on ('error ',function () {console.log('无法抓取blog park主页')});也就是上面的过程就是抓取博客标题和作者。

最终的背景输出如下:

这与博客公园主页的内容一致:

希望本文对nodejs程序的设计有所帮助。

版权声明:由节点实现的爬虫功能示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。