iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >nodejs中superagent和cheerio如何使用
  • 958
分享到

nodejs中superagent和cheerio如何使用

2024-04-02 19:04:59 958人浏览 泡泡鱼
摘要

这期内容当中小编将会给大家带来有关nodejs中superagent和cheerio如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。准备工作  使用npm管理依赖,

这期内容当中小编将会给大家带来有关nodejs中superagent和cheerio如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

准备工作

  使用npm管理依赖,依赖信息会存放在package.JSON

//安装用到的第三方模块
cnpm install --save superagent cheerio

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

//引入第三方模块,superagent用于Http请求,cheerio用于解析DOM
const request = require('superagent');
const cheerio = require('cheerio');
const fs = require('fs');

请求 + 解析页面

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

request.get(url)
      .end(error,res){
      //do something     
}

  向指定的url发起get请求,请求错误时,会有error返回(没有错误时,error为null或undefined),res为返回的数据。

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

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

存储数据

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

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

//创建目录
function mkdir(_path,callback){
  if(fs.existsSync(_path)){
    console.log(`${_path}目录已存在`)
  }else{
    fs.mkdir(_path,(error)=>{
      if(error){
        return console.log(`创建${_path}目录失败`);
      }
      console.log(`创建${_path}目录成功`)
    })
  }
  callback(); //没有生成指定目录不会执行
}

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

//将文字内容存入txt文件中
function saveContent() {
  fs.writeFile('./content/content.txt',content.toString());
}

  取到了图片的链接,所以需要再使用superagent下载图片,存在本地。superagent可以直接返回一个响应流,再配合nodejs的管道,直接把图片内容写到本地

//下载爬到的图片
function downloadImg() {
  imgs.forEach((imgUrl,index) => {
    //获取图片名 
    let imgName = imgUrl.split('/').pop();

    //下载图片存放到指定目录
    let stream = fs.createWriteStream(`./imgs/${imgName}`);
    let req = request.get('https:' + imgUrl); //响应流
    req.pipe(stream);
    console.log(`开始下载图片 https:${imgUrl} --> ./imgs/${imgName}`);     
  } )
}

效果  

  执行下demo,看下效果,数据已经正常爬下来了

nodejs中superagent和cheerio如何使用

上述就是小编为大家分享的nodejs中superagent和cheerio如何使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: nodejs中superagent和cheerio如何使用

本文链接: https://www.lsjlt.com/news/74485.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • nodejs中superagent和cheerio如何使用
    这期内容当中小编将会给大家带来有关nodejs中superagent和cheerio如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。准备工作  使用npm管理依赖,...
    99+
    2024-04-02
  • Nodejs中express和ejs如何使用
    Nodejs中express和ejs如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。var express =&...
    99+
    2024-04-02
  • 如何使用Node.js+Cheerio进行数据抓取
    这篇文章主要介绍“如何使用Node.js+Cheerio进行数据抓取”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用Node.js+Cheerio进行数据抓取...
    99+
    2024-04-02
  • nodejs中如何使用JWT
    这篇“nodejs中如何使用JWT”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“nodejs中如何使用JWT”文章吧。什么是...
    99+
    2023-07-04
  • 如何使用nodejs中的koa
    本篇内容主要讲解“如何使用nodejs中的koa”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用nodejs中的koa”吧! ...
    99+
    2024-04-02
  • JWT如何在nodejs中使用
    这篇文章主要介绍“JWT如何在nodejs中使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JWT如何在nodejs中使用”文章能帮助大家解决问题。什么是JWTJ...
    99+
    2024-04-02
  • 如何在Nodejs中使用forEach
    如何在Nodejs中使用forEach?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。利用数组对象方法push/shift可实现队列先进先出特性,例如:>a=[][]>...
    99+
    2023-06-06
  • nodejs 如何使用
    Node.js 是一个运行在服务器端的 JavaScript 运行时环境,它能够解析和执行 JavaScript 代码。Node.js 很容易上手,因为 JavaScript 是世界上最流行的编程语言之一,并且 Node.js 有着庞大的社...
    99+
    2023-05-16
  • nodejs中Express中间件如何使用
    本篇文章给大家分享的是有关nodejs中Express中间件如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Express是一个基于No...
    99+
    2024-04-02
  • Nodejs中如何使用crypto模块
    本篇文章给大家分享的是有关Nodejs中如何使用crypto模块,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。crypto模块是nodejs的...
    99+
    2024-04-02
  • nodejs如何使用debug
    Node.js作为一种非常流行的后端编程语言,广泛应用于开发各种Web应用、服务器、工具、框架和库等。但是,在开发过程中难免会出现各种各样的问题,例如代码错误、逻辑错误等等。这时候,一个好的调试工具是非常重要的。Node.js的调试工具被称...
    99+
    2023-05-14
  • 如何使用nodejs then
    本篇内容介绍了“如何使用nodejs then”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • nodejs中如何使用全局变量
    nodejs中如何使用全局变量,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.global类似于客户端javascript运...
    99+
    2024-04-02
  • 如何使用nodejs开发
    随着技术的不断发展,许多开发者都开始使用 Node.js 来进行 Web 开发。Node.js 是一个由 C 语言编写的 JavaScript 运行时环境,它可以让开发者使用 JavaScript 来进行服务器端编程。Node.js 和其他...
    99+
    2023-05-23
  • nodejs中require如何用
    本文小编为大家详细介绍“nodejs中require如何用”,内容详细,步骤清晰,细节处理妥当,希望这篇“nodejs中require如何用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2024-04-02
  • nodejs中archiver如何用
    本篇内容介绍了“nodejs中archiver如何用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • nodejs中await如何用
    本篇内容介绍了“nodejs中await如何用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • NodeJs中如何使用Mocha测试框架
    这篇文章给大家介绍NodeJs中如何使用Mocha测试框架,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。下载代码后安装依赖:$ cd DemoOfMocha $&n...
    99+
    2024-04-02
  • Nodejs如何使用gm和imageMagick来处理图片
    这篇文章主要介绍“Nodejs如何使用gm和imageMagick来处理图片”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Nodejs如何使用gm和imageMag...
    99+
    2024-04-02
  • 如何使用pm2部署nodejs
    随着Node.js技术的普及,越来越多的开发者和企业开始使用Node.js进行应用程序的开发和部署。在Node.js应用程序的部署过程中,pm2是一个非常简单易用的工具,它可以帮助你完成Node.js应用程序的各种部署操作,实现灵活的管理和...
    99+
    2023-05-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作