怎样操作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实现爬虫效果

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

推荐阅读:

怎样使用Node.js内Koa实现JWT用户认证

react-navigation使用案例解析

以上就是怎样操作node实现爬虫效果的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 06:19:04
下一篇 2025年2月24日 20:32:05

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

相关推荐

  • 怎样使用源生JS代码实现百度搜索框

    这次给大家带来怎样使用源生JS代码实现百度搜索框,使用源生JS代码实现百度搜索框的注意事项有哪些,下面就是实战案例,一起来看一下。 最近做了个百度搜索框今天给大家分享下。 效果:   1.当进入界面时,自动调用方法,获取当前的时间,并且实时…

    2025年3月8日
    200
  • 如何使用JS模拟实现哈希表

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

    2025年3月8日
    200
  • 怎样使用Vue在页面右上角实现可悬浮/隐藏菜单

    这次给大家带来怎样使用Vue在页面右上角实现可悬浮/隐藏菜单,使用Vue在页面右上角实现可悬浮/隐藏菜单的注意事项有哪些,下面就是实战案例,一起来看一下。 这是个大多数网站很常见的功能,点击页面右上角头像显示一个悬浮菜单,点击页面其他位置或…

    2025年3月8日
    200
  • 怎样使用Vue+canvas实现移动端手写板功能

    这次给大家带来怎样使用Vue+canvas实现移动端手写板功能,使用Vue+canvas实现移动端手写板功能的注意事项有哪些,下面就是实战案例,一起来看一下。 清除 保存 Canvas画板 var draw;var preHandler =…

    编程技术 2025年3月8日
    200
  • 怎样使用react router4+redux实现路由权限控制

    这次给大家带来怎样使用react router4+redux实现路由权限控制,使用react router4+redux实现路由权限控制的注意事项有哪些,下面就是实战案例,一起来看一下。 总体概述 一个完善的路由系统应该是这样子的,当链接到…

    编程技术 2025年3月8日
    200
  • 怎样使用jquery实现左右上下移动功能

    这次给大家带来怎样使用jquery实现左右上下移动功能,使用jquery实现左右上下移动功能的注意事项有哪些,下面就是实战案例,一起来看一下。 最近再做报表时候,直接把全部字段都导出了,但这不太灵活。回忆老师讲过的项目做报表如下左右上下移功…

    2025年3月8日
    200
  • 怎样实现vue模态对话框

    这次给大家带来怎样实现vue模态对话框,实现vue模态对话框的注意事项有哪些,下面就是实战案例,一起来看一下。 写在前面 对话框是很常用的组件 , 在很多地方都会用到,一般我们可以使用自带的alert来弹出对话框,但是假如是设计出的图该怎么…

    2025年3月8日
    200
  • 怎样实现Vue项目中使用Vux

    这次给大家带来怎样实现Vue项目中使用Vux,Vue项目中使用Vux的注意事项有哪些,下面就是实战案例,一起来看一下。 默认已安装vue环境 1.安装vux npm install vux –save-dev 2.安装vux-l…

    2025年3月8日
    200
  • 使用缓存调用链实现JS方法重载步骤详解

    这次给大家带来使用缓存调用链实现JS方法重载步骤详解,使用缓存调用链实现JS方法重载的注意事项有哪些,下面就是实战案例,一起来看一下。 1.什么是方法重载 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的…

    编程技术 2025年3月8日
    200
  • 通过在Vue中使用vue2-highcharts实现top功能(详细教程)

    下面我就为大家分享一篇vue 中使用vue2-highcharts实现top功能的示例,具有很好的参考价值,希望对大家有所帮助。 1、要实现的效果如下图: 2、首先项目中引用vue2-highcharts package.json中如下: …

    2025年3月8日
    200

发表回复

登录后才能评论