node实现爬虫的几种简易方式

 更新时间:2019年08月22日 08:26:09   作者:coolwan丶  
这篇文章主要给大家介绍了关于node实现爬虫的几种简易方式,文中通过示例代码介绍的非常详细,对大家学习或者使用node具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

说到爬虫大家可能会觉得很NB的东西,可以爬小电影,羞羞图,没错就是这样的。在node爬虫方面,我也是个新人,这篇文章主要是给大家分享几种实现node

爬虫的方式。第一种方式,采用node,js中的 superagent+request + cheerio。cheerio是必须的,它相当于node版的jQuery,用过jQuery的同学会非常容易上手。它

主要是用来获取抓取到的页面元素和其中的数据信息。superagent是node里一个非常方便的、轻量的、渐进式的第三方客户端请求代理模块,用他来请求目标页面。

node中,http模块也可作为客户端使用(发送请求),第三方模块request对其使用方法进行了封装,操作更方便。以下是三者的引入方法:

接下来我们开始请求要爬取的目标页面。申明目标页面比如新浪网首页:

如新浪首页部分代码

  

通过superagent请求目标网站,获取到网站内容,通过cheerio.load方法引入要解析的html
cheerio中的有关DOM操作的方式

此处采用 .each(function(index,element){...})方式遍历需要的元素

返回结果如下:

若要将文字内容存储可采用以下方式:

引入fs模块const fs= require("fs")

引入path模块 const path=require("path")

Node.js 内置的fs模块就是文件系统模块,负责读写文件。和所有其他JS模块不同的是,fs模块同时提供了异步和同步的方法。

在上述方法中调用存储文字内容mkdirs方法

//存放数据
mkdirs('./content2',saveContent); (注: content2是新建文件名;saveContent是回调函数)

文字内容最终将存储在content2中的content.txt文件中

若想存储图片可采用以下方式:

第二种方式: 使用Nightmare自动化测试工具。

这里介绍一下nightmare工具的用途:

Electron可以让你使用纯JavaScript调用Chrome丰富的原生的接口来创造桌面应用。你可以把它看作一个专注于桌面应用的Node.js的变体,而不是Web服务器。

其基于浏览器的应用方式可以极方便的做各种响应式的交互

Nightmare是一个基于Electron的框架,针对Web自动化测试和爬虫,因为其具有跟PlantomJS一样的自动化测试的功能可以在页面上模拟用户的行为触发一些异步数据加载,

也可以跟Request库一样直接访问URL来抓取数据,并且可以设置页面的延迟时间,所以无论是手动触发脚本还是行为触发脚本都是轻而易举的。

const Nightmare=require("nightmare") //自动化测试包 ,处理动态页面
const nightmare=Nightmare({show: true}) show:true时,运行node可以显示内置模拟浏览器

运行结束后,会在image2中存储下载的图片。

好了,文章就到这里了,有什么问题欢迎小伙伴指正。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • nvm安装步骤及使用方法

    nvm安装步骤及使用方法

    nvm是一个管理nodejs版本的工具。在实际的开发中,有些项目的开发依赖需要低版本的nodejs运行环境,有些则需要高版本的nodejs,此时我们就需要使用nvm来切换nodejs版本,接下来通过本文给大家讲解nvm安装步骤及使用方法,感兴趣的朋友一起看看吧
    2023-01-01
  • 解决npm i 报错以及python安装卡住的问题

    解决npm i 报错以及python安装卡住的问题

    这篇文章主要介绍了解决npm i 报错以及python安装卡住的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • node.js中的fs.realpathSync方法使用说明

    node.js中的fs.realpathSync方法使用说明

    这篇文章主要介绍了node.js中的fs.realpathSync方法使用说明,本文介绍了fs.realpathSync的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • 实例分析nodejs模块xml2js解析xml过程中遇到的坑

    实例分析nodejs模块xml2js解析xml过程中遇到的坑

    这篇文章主要介绍了实例分析nodejs模块xml2js解析xml过程中遇到的坑,涉及nodejs模块xml2js解析xml过程中parseString方法参数使用技巧,需要的朋友可以参考下
    2017-03-03
  • NodeJs下的测试框架Mocha的简单介绍

    NodeJs下的测试框架Mocha的简单介绍

    本篇文章主要介绍了NodeJs下的测试框架Mocha的简单介绍,是目前最为流行的javascript框架之一,在本文我们重点介绍它在NodeJs上的使用。有兴趣的可以了解一下。
    2017-02-02
  • Nodejs在局域网配置https访问的实现方法

    Nodejs在局域网配置https访问的实现方法

    做一个局域网WebRTC视频聊天系统,需要用到HTTPS。因此,配置Node.js使其支持HTTPS访问。这篇文章主要介绍了Nodejs在局域网配置https访问的实现方法,需要的朋友可以参考下
    2020-10-10
  • nodejs微信开发之自动回复的实现

    nodejs微信开发之自动回复的实现

    这篇文章主要介绍了nodejs微信开发之自动回复的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • nodejs微信开发之授权登录+获取用户信息

    nodejs微信开发之授权登录+获取用户信息

    这篇文章主要介绍了nodejs微信开发之授权登录+获取用户信息,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 解决下载了nodejs但npm -v没有反应问题的全过程

    解决下载了nodejs但npm -v没有反应问题的全过程

    最近工作中遇到了个问题,node安装成功,但npm无法使用,所以下面这篇文章主要给大家介绍了关于下载了nodejs但npm -v没有反应问题解决的相关资料,需要的朋友可以参考下
    2022-08-08
  • node版本管理器Volta的简单使用

    node版本管理器Volta的简单使用

    Volta是一款强大的JavaScript工具管理器,它简化了命令行工具的安装和管理,本文主要介绍了node版本管理器Volta的简单使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02

最新评论