node实现爬虫功能案例分析

这次给大家带来node实现爬虫功能案例分析,node实现爬虫功能的注意事项有哪些,下面就是实战案例,一起来看一下。

node是服务器端的语言,所以可以像python一样对网站进行爬取,下面就使用node对博客园进行爬取,得到其中所有的章节信息。

第一步: 建立crawl文件,然后npm init。

第二步: 建立crawl.js文件,一个简单的爬取整个页面的代码如下所示:

var http = require("http");var url = "http://www.cnblogs.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请求,即一旦运行,相当于node服务器端发送了一个get请求请求这个页面,然后通过res返回,其中on绑定data事件用来不断地接受数据,最后end时我们就在后台打印出来。

这只是整个页面的一部分,我们可以在此页面审查元素,发现确实是一样的

我们只需要将其中的章节title和每一小节的信息爬到即可。

第三步: 引入cheerio模块,如下:(在gitbash中安装即可,cmd总是出问题)

cnpm install cheerio --save-dev

登录后复制

这个模块的引入,就是为了方便我们操作dom,就像jQuery一样。

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

var http = require("http");var cheerio = require("cheerio");var url = "http://www.cnblogs.com";function filterData(html) {  var $ = cheerio.load(html);   var items = $(".post_item");  var result = [];  items.each(function (item) {    var tit = $(this).find(".titlelnk").text();    var aut = $(this).find(".lightblue").text();    var one = {      title: tit,      author: aut    };    result.push(one);  });  return result;}function printInfos(allInfos) {  allInfos.forEach(function (item) {    console.log("文章题目 " + item["title"] + '' + "文章作者 " + item["author"] + ''+ '');  });}http.get(url, function (res) {  var html = "";  res.on("data", function (data) {    html += data;  });  res.on("end", function (data) {    var allInfos = filterData(html);    printInfos(allInfos);  });}).on("error", function () {  console.log("爬取博客园首页失败")});

登录后复制

即上面的过程就是在爬取博客的题目和作者。

最终后台输出如下:

node实现爬虫功能案例分析

这和博客园首页的内容是一致的:

node实现爬虫功能案例分析

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Vue.js计算与侦听器属性使用详解

js三种调用方式优缺点总结

以上就是node实现爬虫功能案例分析的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2762069.html

(0)
上一篇 2025年3月8日 09:51:12
下一篇 2025年3月8日 03:10:36

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS百度搜索框效果功能实现案例详解

    这次给大家带来JS百度搜索框效果功能实现案例详解,JS百度搜索框效果功能实现的注意事项有哪些,下面就是实战案例,一起来看一下。 效果:   1.当进入界面时,自动调用方法,获取当前的时间,并且实时更新时间。   2.点击页面头部的换肤,自动…

    2025年3月8日
    200
  • JS做出哈希表功能

    这次给大家带来JS做出哈希表功能,JS做出哈希表功能的注意事项有哪些,下面就是实战案例,一起来看一下。 在算法中,尤其是有关数组的算法中,哈希表的使用可以很好的解决问题,所以这篇文章会记录一些有关js实现哈希表并给出解决实际问题的例子。 说…

    2025年3月8日
    200
  • JS实现透明度渐变功能

    这次给大家带来JS实现透明度渐变功能,JS实现透明度渐变功能的注意事项有哪些,下面就是实战案例,一起来看一下。 JS透明度变化效果 body{ margin: 0px; padding: 0px; } .redb{ width:200px;…

    编程技术 2025年3月8日
    200
  • jQuery实现电子时钟功能步骤详解

    这次给大家带来jQuery实现电子时钟功能步骤详解,jQuery实现电子时钟功能的注意事项有哪些,下面就是实战案例,一起来看一下。 jQuery电子时钟 haha window.onload = function(){ showTime()…

    2025年3月8日
    200
  • Mint UI怎样实现左滑删除功能

    这次给大家带来Mint UI怎样实现左滑删除功能,Mint UI实现左滑删除功能的注意事项有哪些,下面就是实战案例,一起来看一下。 关于Mint UI,有文档不够准确详尽,组件略显粗糙,功能不够完善等问题;也有高度组件化,体积小等优点。 安…

    2025年3月8日
    200
  • node做出微信个人号机器人步骤详解

    这次给大家带来node做出微信个人号机器人步骤详解,node做出微信个人号机器人的注意事项有哪些,下面就是实战案例,一起来看一下。 现在,日常生活已经离不开微信,本文将会抛砖引玉演示如何使用 wechaty 操作微信个人号做一些有意思的东西…

    编程技术 2025年3月8日
    200
  • 使用Vue实现拖拽功能步骤详解

    这次给大家带来使用Vue实现拖拽功能步骤详解,使用Vue实现拖拽功能的注意事项有哪些,下面就是实战案例,一起来看一下。 效果图: HTML代码: 位置 x:{{val.x}} y:{{val.y}} //注意这里要通过指令绑定函数将当前元素…

    2025年3月8日
    200
  • AjaxFileUpload+Struts2实现多文件上传功能

    这篇文章主要介绍了AjaxFileUpload+Struts2实现多文件上传功能,需要的朋友可以参考下 本文重点给大家介绍AjaxFileUpload+Struts2实现多文件上传功能,具体实现代码大家参考下本文。 单文件和多文件的实现区别…

    编程技术 2025年3月8日
    200
  • 解决node修改后需频繁手动重启如何处理

    这次给大家带来解决node修改后需频繁手动重启如何处理,解决node修改后需频繁手动重启的注意事项有哪些,下面就是实战案例,一起来看一下。 在开发过程中,每次修改代码保存后,我们都需要手动重启程序,才能查看改动的效果。使用 supervis…

    2025年3月8日
    200
  • node搭建服务器,写接口,调接口,跨域方法详解

    这次给大家带来node搭建服务器,写接口,调接口,跨域方法详解,node搭建服务器,写接口,调接口,跨域的注意事项有哪些,下面就是实战案例,一起来看一下。 刚开始学node,今天做这个也是累死宝宝了,以后可以自己写接口自己用了,再也不用麻烦…

    2025年3月8日
    200

发表回复

登录后才能评论