如何用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计算属性与侦听器

H5中data-*属性使用方法汇总

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

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

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

(0)
上一篇 2025年3月8日 08:16:24
下一篇 2025年3月3日 12:42:43

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

相关推荐

  • Ajax+Struts2实现验证码验证功能(图文教程)

    这篇文章主要介绍了ajax+struts2实现验证码验证功能实例代码的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 众所周知,验证码在我们的生活中都是非常常见的,很多公司都在各种折腾各种各样的验证码,这里简要的用一个小案例来实…

    2025年3月8日
    200
  • 怎样使linux后台运行node服务指令

    这次给大家带来,的注意事项有哪些,下面就是实战案例,一起来看一下。 启动node 服务时候发现 node servier.js跑起来之后,一旦断开连接,服务也就停了, 使用 nohup node servier.js & 就可以让代…

    编程技术 2025年3月8日
    200
  • 地图搜租房功能实现

    这次给大家带来地图搜租房功能实现,地图搜租房功能实现的注意事项有哪些,下面就是实战案例,一起来看一下。 layout: posttitle: 半个小时教你写一个毕设之地图搜租房category: 其他date: 2018-05-23tags…

    2025年3月8日
    200
  • linux后台运行node服务指令步骤方法

    这次给大家带来linux后台运行node服务指令步骤方法,linux后台运行node服务指令的linux有哪些,下面就是实战案例,一起来看一下。 启动node 服务时候发现 node servier.js跑起来之后,一旦断开连接,服务也就停…

    编程技术 2025年3月8日
    200
  • 如何使用node结合swig渲染摸板

    这次给大家带来如何使用node结合swig渲染摸板,使用node结合swig渲染摸板的注意事项有哪些,下面就是实战案例,一起来看一下。 首先当然是利用express框架在node后台上面搭建服务 var express = require(…

    2025年3月8日
    200
  • 怎么使用node实现基于token身份验证

    这次给大家带来怎么使用node实现基于token身份验证,使用node实现基于token身份验证的注意事项有哪些,下面就是实战案例,一起来看一下。 最近研究了下基于token的身份验证,并将这种机制整合在个人项目中。现在很多网站的认证方式都…

    编程技术 2025年3月8日
    200
  • 怎样使用vue组件与复用功能

    这次给大家带来怎样使用vue组件与复用功能,使用vue组件与复用功能的注意事项有哪些,下面就是实战案例,一起来看一下。 一、什么是组件 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重…

    编程技术 2025年3月8日
    200
  • 手写Node静态资源服务器的实现方法

    这篇文章主要介绍了手写node静态资源服务器的实现方法,现在分享给大家,也给大家做个参考。 想写静态资源服务器,首先我们需要知道如何创建一个http服务器,它的原理是什么 http服务器是继承自tcp服务器 http协议是应用层协议,是基于…

    2025年3月8日 编程技术
    200
  • 浅谈Node 调试工具入门教程

    这篇文章主要介绍了浅谈node 调试工具入门教程,现在分享给大家,也给大家做个参考。 JavaScript 程序越来越复杂,调试工具的重要性日益凸显。客户端脚本有浏览器,Node 脚本怎么调试呢? 2016年,Node 决定将 Chrome…

    2025年3月8日 编程技术
    200
  • vue下拉列表功能实例代码

    这篇文章主要介绍了vue下拉列表功能实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下 最近在弄作品,做了个下拉列表。心想各位小哥哥、小姐姐可能会用到相同的需求,就把下拉列表封装一下,希望能对各位小哥哥,小姐姐有帮助 github地…

    2025年3月8日
    200

发表回复

登录后才能评论